Jackson Json:如何从json节点java获取多个同名值



我有一个看起来像这样的 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列表以查找存在的唯一整数。

最新更新