我有一个典型的JSON内存表示形式(嵌套地图,列表和字符串树),并希望将它们转换为POJO。
例如,假设我有Map<String, String>
代表以下结构。
{
"name": "Brennan",
"profession:" "Software Developer",
"hometown": "Phoenix"
}
我想将其转换为以下类的对象。
public class Person {
private String name;
private String profession;
private String hometown;
/* Getters and setters */
}
一种选择是使用Jackson将地图序列化为JSON,然后再次使用JSON将其反序列化为Person
类型的对象。是否有一种不那么麻烦的方式,跳过这个中间步骤?
答案 0 :(得分:2)
是的,您可以使用杰克逊的convertValue
方法直接支持
ObjectMapper mapper = new ObjectMapper();
Person person = mapper.convertValue(map, Person.class);
请注意,这是一个等同于从文件写入/读取的逻辑,在某种意义上说,将应用相同的转换,序列化和反序列化规则。它只是更快,因为它只在内存中