我有一个关于将json放入我的jython脚本的问题。这是我的情景:
因此,有了这些限制,我想在我的笔记本电脑上取一个字典对象,将其转换为json,将其交付给托管的jython应用程序,然后使用本机jython或java工具将其转回该字典对象,以便我可以在我托管在云中的脚本中继续使用它。
我已经知道如何在“regular” python中执行此操作。这很简单。导入json并疯狂。但我的java功夫很弱,我以前从未在jython工作过。
所以我试图弄清楚这是否可以使用jython底层的java可靠而轻松地做到这一点,或者如果我最好使用像ast这样的东西,只需将字典作为字符串文字发送。我真的更喜欢坚持使用json,因为人们喜欢json的所有正常原因,所以任何帮助利用java库来完成这项工作都将不胜感激。
答案 0 :(得分:2)
我忘记了这个问题。我的核心问题是我使用的是第三方云产品,他们是Jython安装的所有者,因此我对Jython环境的改变有限。当时我在想,我可以利用一个JAVA库来解决这个问题,但这种方法从来没有用过。
虽然jython不受我的控制,但我确实控制了我发送数据的方式而不是使用JSON,我发送了格式化字符串,然后使用python ast库(在jython中)将这些字符串转换为python对象。 / p>
最后它看起来像这样:
thestring = """['name', 'quest', 'favorite color']"""
theobject = ast.literal_eval(thestring)
这种类型的逻辑让我的本地机器上的python脚本将字符串发布到运行jython的web应用程序,并将这些字符串转换为python数据类型然后使用它们。这正是我想要使用JSON而不实际使用JSON的原因 - 它是python dicts所以它看起来非常像JSON,如果你没有真正关注。
感谢大家的建议。
答案 1 :(得分:0)
您可以使用Jackson或GSON。您可以使用Java下JSON.org上列出的任何内容,您可以使用“Python”下的内容(例如simplejson)。
答案 2 :(得分:0)
你可以使用simplejson,它可以用作纯python,因此可以在Jython上运行。通过将其包含在与其他代码相同的源文件夹中,无需进行特殊安装。
答案 3 :(得分:0)
Jyson似乎是一个开源项目,在纯Java中实现python投诉json编解码器。
在此处下载:http://opensource.xhaus.com/projects/jyson/files。
然后解压缩并将jyson-1.0.2 / lib / jyson-1.0.2.jar添加到您的CLASSPATH。
然后像这样导入:
import com.xhaus.jyson.JysonCodec as json
在此处找到此信息:http://aholzner.wordpress.com/2010/07/31/using-json-from-jython/。适合我。
答案 4 :(得分:-1)
这个问题有点陈旧,但在遇到类似问题时我遇到了这个问题:
https://support.xebialabs.com/hc/communities/public/questions/201998425-Use-json-with-Jython-script
从本质上讲,这就是我解决它的方法(使用simplejson):
try:
sys.path.append('<PATH TO SIMPLEJSON ROOT>')
import simplejson as json
except Exception, e:
print e
答案 5 :(得分:-1)
如果您正在使用latest version of jython,则可以访问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)
希望有帮助...