我在解析 JSON 时面临以下情况。我要解组的 JSON 包含一个数字数组(双精度数),如下所示:
"position":[52.50325,13.39062]
所以没有名称/值对。
问题是我无法获得这个数组的值。在对 JSON 进行建模的 Java 对象中,我将位置属性定义为双精度列表:List<Double>
但在解组之后,位置属性始终为空。
出于测试目的,我像这样更改了 JSON 的内容:
position: [„52.50325“ ,“ 13.39062“ ]
然后就没有问题了,我得到了包含两个元素的列表。(顺便说一句,无论位置是定义为字符串列表还是双精度列表(List<String>
或List<Double>
),都会发生这种情况)
因此,一种解决方法可能是在解组之前更改 JSON 响应并将此数字标记为字符串,但我想避免这种情况,我想知道是否有解决方案来获取数字数组的值?
这是代码的快照:
ResultsListDO.java
:
@XmlElement(required = true)
protected List<Double> position;
public List<Double> getPosition()
{
if (position == null) {
position = new ArrayList<Double>();
}
return this.position;
}
JSON解组:
context = new JSONJAXBContext(JSONConfiguration.mapped().build(), ResultsListDO.class);
JSONUnmarshaller um = context.createJSONUnmarshaller();
ResultsListDO resultsList = um.unmarshalFromJSON(source.getReader(), ResultsListDO.class);