我有一个简单的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。
如何正确反序列化?
答案 0 :(得分:4)
杰克逊正确地使用我的机器1.8.1中的杰克逊版本对细节属性进行了反序列化。你能否确认你为Employee类创建了访问器,如果没有,那可能是原因。