Одной из распространенных проблем, с которой сталкиваются начинающие разработчики на Java при работе с JSON, является десериализация массива объектов. Допустим, есть JSON-массив, который содержит некоторые объекты. Например:
[
{
«name»: «John»,
«age»: 30
},
{
«name»: «Jane»,
«age»: 25
}
]
И есть класс Person
, который имеет поля name
и age
. Цель — десериализовать этот JSON-массив в List<Person>
.
public class Person { private String name; private int age; // getters and setters }
В Jackson есть несколько способов сделать это. Вот один из простых способов:
ObjectMapper objectMapper = new ObjectMapper(); List<Person> persons = objectMapper.readValue(json, new TypeReference<List<Person>>(){});
В этом коде используется класс TypeReference
из библиотеки Jackson, который позволяет преобразовать JSON-массив в список объектов указанного типа.
Когда объект ObjectMapper
вызывает метод readValue()
, он принимает JSON-строку и класс, в который нужно преобразовать JSON. Вместо прямого указания класса, как Person.class
, используется new TypeReference<List<Person>>() {}
. Это необходимо для того, чтобы сохранить информацию о типе объектов в списке при десериализации.
Таким образом, можно десериализовать JSON-массив в список объектов с помощью Jackson в Java.
Добавить комментарий