Обработка Json, сохраненного в виде HashMap, с несколькими элементами, хранящимися в значениях - PullRequest
0 голосов
/ 24 января 2019

У меня есть документ JSON с несколькими объектами. Мне удалось распечатать это как карту, но я хочу иметь возможность доступа к элементам в пределах значений.

Я могу распечатать карту, но хочу иметь возможность печатать определенные элементы в клавишах

for (Map.Entry<String,Object> entry : myMap.entrySet()) {
        System.out.println("Key: "+entry.getKey() + " Value: "+entry.getValue());
    }

Это выводит следующее:

Key: header1 Value: {id=123456, contents=[cat,dog,hamster]}
Key: header2 Value: {id=234567, contents=[spoon,knife,fork]}

Я хотел бы иметь возможность циклически проходить и на каждой итерации назначать идентификатор для строки и содержимое для списка

Ответы [ 2 ]

0 голосов
/ 24 января 2019

У меня была пара проблем с кодом, который, как я предполагал, работал, но теперь я решил эту проблему с небольшой помощью коллеги.

value.getContents();

Была ли вещь, которую я искал!

0 голосов
/ 24 января 2019

Самое простое решение - создать класс, который представляет JSON. Для вас это будет так:

public class Contents {
    private int id;
    private List<String> contents;

    //No arguments constructor, getters and setters for every field
    //You can make with @JsonCreator, too. Read Jackson documentation
};

Тогда вы просто читаете его как объект, используя ObjectMapper Джексона:

ObjectMapper mapper = new ObjectMapper();
Contents result = mapper.readValue(entry.getValue(), Contents.class);

После этого вы можете делать все что угодно с объектом. Позже вы даже можете записать его в файл / поток и т. Д.

...