我有一个看起来像这样的Json字符串:
{
"generatedList1":{"myList":["1","2","3","4"]},
"generatedList2":{"myList":["1","6","8","2"]},
"generatedList3":{"myList":["1","12","3","11"]}
}
我想收集所有myList
中存在的所有值
即[1,2,3,4,6,8,11,12]
我将字符串转换为JsonNode
,然后执行JsonNode.findValues("myList")
返回了List<JsonNode>
。
但是,当我尝试将每个JsonNode
转换为String
时,会得到双引号和方括号作为String
的一部分,而不仅仅是数字。
我可以将其从String
中删除,但似乎很hack。
我确信必须有直接的方法来做到这一点。
任何帮助将不胜感激。
答案 0 :(得分:0)
在这里,JsonNode.findValues("myList")
返回一个JsonNode列表。
您可以通过以下步骤迭代每个JsonNode对象并将其轻松转换为List<Integer>
:
ObjectMapper mapper = new ObjectMapper();
List<Integer> list = mapper.readerFor(new TypeReference<List<Integer>>(){}).readValue(jsonNode);
然后您可以组合Integers
的这些列表以找到存在的唯一整数。