gpt4 book ai didi

java - 如何使用 Jackson 序列化为 java.util.List 和 java.util.Map

转载 作者:行者123 更新时间:2023-11-30 01:53:30 25 4
gpt4 key购买 nike

是否可以直接使用 Jackson 库将 Java 对象序列化为列表和映射?我的意思不是 String,不是 byte[],而是 java.util.Mapjava.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

最佳答案

使用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}]

关于java - 如何使用 Jackson 序列化为 java.util.List 和 java.util.Map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55250969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com