[英]jackson auto map/deserialize json with unique property
我如何使用 jackson 注释将 json 自动映射到我的对象。 我为 json 的每个部分都嵌套了 pojo,但是我收到的属性名称是每个对象的唯一 ID。 在Employees 类中应该是什么,它实际上将使用名称映射id 和对象。 我有以下课程:
public class Company {
@JsonProperty("employees")
private Employees employees;
//getters setters
}
"Employees": {
"1355075": {
"firstName": "john",
"lastName": "doe"
},
"1224423": {
"firstName": "frank",
"lastName": "stevens"
}
}
您的 JSON 示例似乎在一开始就错过了{
。 您的 Java 类( @JsonProperty("employees")
)和您的 JSON 示例( "Employees"
)之间存在拼写不匹配。
在您的 JSON 示例中, "Employees":
之后的部分具有 JSON 对象的形式,将字符串(唯一 id)映射到对象(每个都有一个名字和姓氏)。 现在 Jackson 附带了一个通用的MapDeserializer
,它可以将任何看起来像 JSON 对象的东西反序列化为 Java Map
。 因此,您的Company
类应该具有以下内容:
@JsonProperty("Employees")
private Map<String, Employee> employees;
您还需要编写一个Employee
类,该类具有两个名为firstName
和lastName
String 属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.