[英]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.