0

我有一个看起来像这样的 Json 字符串:

{
 "generatedList1":{"myList":["1","2","3","4"]},
 "generatedList2":{"myList":["1","6","8","2"]},
 "generatedList3":{"myList":["1","12","3","11"]}
}

我想收集所有myList ie中的所有值[1,2,3,4,6,8,11,12]

我将字符串转换为JsonNode然后执行JsonNode.findValues("myList")返回List<JsonNode>。但是当我尝试将每个转换为时JsonNodeString我会得到双引号和方括号作为数字的一部分,String而不仅仅是数字。我可以将其从中删除,String但它看起来很hacky。我确信必须有一种直接的方法来做到这一点。任何帮助将不胜感激。

4

1 回答 1

0

这里,JsonNode.findValues("myList")返回一个 JsonNode 列表。

您可以迭代每个 JsonNode 对象并将它们List<Integer>轻松转换为:

ObjectMapper mapper = new ObjectMapper();
List<Integer> list = mapper.readerFor(new TypeReference<List<Integer>>(){}).readValue(jsonNode);

然后,您可以结合这些列表Integers来查找存在的唯一整数。

于 2018-10-07T09:24:57.270 回答