我有一个看起来像这样的 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
然后执行返回List<JsonNode>
JsonNode.findValues("myList")
. 但是当我尝试将每个JsonNode
转换为String
时,我会得到双引号和方括号作为String
的一部分,而不仅仅是数字。 我可以将其从String
中删除,但这似乎很笨拙。 我相信必须有一个直接的方法来做到这一点。 任何帮助将不胜感激。
在这里,JsonNode.findValues("myList")
返回一个 JsonNode 列表。
您可以遍历这些 JsonNode 对象中的每一个,并通过以下方式轻松地将它们转换为List<Integer>
:
ObjectMapper mapper = new ObjectMapper();
List<Integer> list = mapper.readerFor(new TypeReference<List<Integer>>(){}).readValue(jsonNode);
然后,您可以组合这些Integers
列表以查找存在的唯一整数。