我正在调用一个终结点,请求主体看起来是这样的。
{"page":6,"name":"Fly","myList":["123","657","983","112"]}
所以我创建了一个org.json.jsonobject,比如 JSONObject repsonseObj = new JSONObject(repsonse.getBody());
我现在可以做了
(int)repsonseObj.get("page");
(String)repsonseObj.get("name");
我正试图将“mylist”转换成一个字符串的java数组列表。我可以使用jsonarray对象将其拉出,并使用for循环填充arraylist的示例。还尝试了下面使用objectmapper for jackson.databind执行的类似操作
myListVar = mapper.readValue((String)repsonse.getString("myList"), new TypeReference<ArrayList<String>>(){});
//That gives an error saying "myList" is not a string. Surely I am missing something here.
我想保持数字的顺序。有没有更优雅的解决方案?我试着查看java.lang中的stringutils和arrayutils。我似乎找不到更好的解决办法。有人能给我指出正确的方向吗,谢谢。
2条答案
按热度按时间p5fdfcr11#
实际上,为什么不解析整个对象而不仅仅是列表呢?
它将json解析为一个变量
编辑:
正如注解中所显示的那样,您需要json中的属性与类中的属性具有不同的名称。这可以通过使用
@JsonProperty
正如@dragos ionut所建议的。只需做以下操作enxuqcxy2#
这是序列化整个对象的好方法,而且您已经得到了答案。
OR
您可以这样尝试:编辑:我加上@z的建议,结果是一样的。