将JSON的内存(Map)表示转换为POJO(可能与Jackson)

时间:2015-01-25 22:36:48

标签: java json jackson

我有一个典型的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类型的对象。是否有一种不那么麻烦的方式,跳过这个中间步骤?

1 个答案:

答案 0 :(得分:2)

是的,您可以使用杰克逊的convertValue方法直接支持

 ObjectMapper mapper = new ObjectMapper(); 
 Person person = mapper.convertValue(map, Person.class);

请注意,这是一个等同于从文件写入/读取的逻辑,在某种意义上说,将应用相同的转换,序列化和反序列化规则。它只是更快,因为它只在内存中