使用Jackson进行Java Map反序列化

时间:2011-12-22 03:00:37

标签: java json jackson deserialization

我有一个简单的POJO

public class Employee
{
    int level;
    int salary;

    Map<String, String> details; // HashMap
}

此类的序列化对象看起来像

{"level":1,"salary":30000, "details":{"address":"ADDRESS", "phone":"12345678"}}

假设上面的JSON字符串存储在名为json的Java String变量中, 通过以下Jackson声明对其进行反序列化时

Employee employee = new ObjectMapper().readValue(json, Employee.class);

正确创建对象,不会发生异常,正确填充“level”和“salary”字段,但“details”字段(最初为HashMap)始终为null。

如何正确反序列化?

1 个答案:

答案 0 :(得分:4)

杰克逊正确地使用我的机器1.8.1中的杰克逊版本对细节属性进行了反序列化。你能否确认你为Employee类创建了访问器,如果没有,那可能是原因。