【发布时间】:2015-03-12 16:31:23
【问题描述】:
首先,我是 Jython 的新手。我正在寻找一种将 python 代码集成到 Java 项目中的方法。因此,我正在调查 Jython。
我正在尝试将 json 字符串转换为 java 对象 - 在 python 中。
首先,我一直在努力让 Jython 甚至找到我的 java 类。由于缺乏更优雅的解决方案,我只需执行以下操作即可继续前进:
import sys
sys.path.append('/home/anton/workspaces/m/TradePerformance/lib/jackson-databind-2.5.1.jar')
sys.path.append('/home/anton/workspaces/m/TradePerformance/lib/jackson-core-2.5.0.jar')
无论如何...
我正在尝试以下方法:
url = 'myRestService...'
response = urllib2.urlopen(url).read()
print response
import sys
mapper = ObjectMapper
trades = ArrayList<TradeOrder>()
#trades = mapper.readValue(response, ArrayList<TradeOrder>().__class__, "");
#trades = mapper.convertValue(ArrayList<TradeOrder>().__class__, response)
#trades= mapper.reader
trades = mapper.readValue(response, ArrayList<TradeOrder>().__class__)
但是,运行时出现以下错误:
Traceback (most recent call last):
File "/home/anton/workspaces/m/TradePerformance/src/com/test/test.py", line 41, in <module>
trades = mapper.readValue(response, ArrayList<TradeOrder>().__class__);
TypeError: readValue(): expected 3-5 args; got 2
我不确定为什么 Jython 说它需要 3-5 个参数。 根据http://fasterxml.github.io/jackson-databind/javadoc/2.0.0/com/fasterxml/jackson/databind/ObjectMapper.html 上的 JavaDocs 此方法有 3 个重载,并且都需要 2 个参数。
谁知道问题出在哪里?
【问题讨论】:
标签: java python json jackson jython