簡體   English   中英

jackson 自動映射/反序列化具有唯一屬性的 json

[英]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類,該類具有兩個名為firstNamelastName String 屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM