Java 仅使用默认库在jython中解码json
我有一个关于将json引入jython脚本的问题。以下是我的设想:Java 仅使用默认库在jython中解码json,java,python,json,jython,Java,Python,Json,Jython,我有一个关于将json引入jython脚本的问题。以下是我的设想: 我正在笔记本电脑上运行python应用程序 该应用程序需要与在托管服务器中运行的jython应用程序共享数据 在第三方的云环境中进行环境升级 我无法将第三方模块添加到此环境中(因此我 无法安装com.xhaus.jyson(例如) 这可能意味着我仅限于本机的功能 java-org.json.JSONObject 因此,有了这些限制,我想在我的笔记本电脑上获取一个dictionary对象,将其转换为json,将其交付到托管的j
- 我正在笔记本电脑上运行python应用程序
- 该应用程序需要与在托管服务器中运行的jython应用程序共享数据 在第三方的云环境中进行环境升级
- 我无法将第三方模块添加到此环境中(因此我 无法安装com.xhaus.jyson(例如)
- 这可能意味着我仅限于本机的功能 java-org.json.JSONObject
import com.xhaus.jyson.JysonCodec as json
thestring = """['name', 'quest', 'favorite color']"""
theobject = ast.literal_eval(thestring)
在此处找到此信息:。对我有用 这个问题有点过时,但我在遇到类似问题时遇到了这个问题: 本质上,我就是这样解决的(使用):
试试看:
sys.path.append(“”)
将simplejson导入为json
除例外情况外,e:
打印e
如果使用,则可以访问python json库。因此:
import json
mydict_as_json = json.dumps(mydict)
# send over the wire
# on the remote side
import json
mydict = json.load(mydict_as_json_from_remote_as_file_like_object)
希望这对……有帮助。我忘了这个问题。我这里的核心问题是,我使用的是第三方云产品,而他们是Jython安装的所有者,因此我对Jython环境的更改受到限制。当时我在想,我可以利用jython可以使用的JAVA库来解决这个问题,但从来没有成功过 虽然jython不在我的控制范围之内,但我确实控制了如何发送数据,因此我没有使用JSON,而是发送格式化字符串,然后使用jython中的python ast库将这些字符串转换为python对象 最后看起来是这样的:
import com.xhaus.jyson.JysonCodec as json
thestring = """['name', 'quest', 'favorite color']"""
theobject = ast.literal_eval(thestring)
这种逻辑允许本地机器上的python脚本将字符串发布到运行jython的web应用程序,并将这些字符串转换为python数据类型,然后使用它们。这正是我想在不使用JSON的情况下使用JSON的目的——它是python dicts,所以如果你没有真正注意的话,它看起来非常像JSON
谢谢大家的建议。运行脚本的整个环境都是从加载脚本的地方抽象出来的。“包含到相对路径”将中断,因为我的脚本在别处运行,而不是在我上载它的地方。所以你的脚本只能包含一个文件?似乎是这样。我是这项服务的新手,但事实似乎如此。因此,我可以将任何默认值导入jython。这意味着我不能像在python中那样导入json。但这确实意味着我可以利用底层java库。但是,我对java很糟糕,这就是我使用Python的原因,因此访问java对我没有多大帮助。如果您使用的是最新版本的jython,那么您可以访问Python json库。所以,请看下面我的答案……感谢Eric跟进您的解决方案!我遇到了同样的情况,这真的节省了我的时间!对于那些必须使用图形的用户,请使用-
导入ast