Как сериализовать в java.util.List и java.util.Map с Джексоном - PullRequest
1 голос
/ 20 марта 2019

Можно ли сериализовать объекты Java в списки и карты с помощью библиотеки Джексона напрямую? Я имею в виду не String, не byte[], а java.util.Map и java.util.List.

Это может быть полезно при динамической фильтрации ненужных полей.

Я могу сделать это в два этапа, сначала преобразовав в String.

ObjectMapper mapper = new ObjectMapper()
DTO dto = new DTO();
DTO[] dtos = {dto};
mapper.readValue(mapper.writeValueAsString(dto), Object.class); // Map
mapper.readValue(mapper.writeValueAsString(dtos), Object.class); // List

1 Ответ

2 голосов
/ 20 марта 2019

Использование convertValue метод:

ObjectMapper objectMapper = new ObjectMapper();
Map map = objectMapper.convertValue(new Person(), Map.class);
System.out.println(map);

Работает так же для Object.class как тип цели:

ObjectMapper objectMapper = new ObjectMapper();
Object map = objectMapper.convertValue(new Person(), Object.class);
Object array = objectMapper.convertValue(Collections.singleton(new Person()), Object.class);
System.out.println(map);
System.out.println(array);

печать:

{name=Rick, lastName=Bricky}
[{name=Rick, lastName=Bricky}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...