Джексон Джсон: Как получить несколько значений с одинаковым именем из узла json java - PullRequest
0 голосов
/ 07 октября 2018

У меня есть строка 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, но это кажется хакерским.Я уверен, что должен быть прямой способ сделать это.Любая помощь будет высоко оценена.

1 Ответ

0 голосов
/ 07 октября 2018

Здесь JsonNode.findValues("myList") возвращает список JsonNode.

Вы можете перебирать каждый из этих объектов JsonNode и легко конвертировать их в List<Integer> с помощью:

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

. Вы можетезатем объедините эти списки Integers, чтобы найти уникальные целые числа.

...