簡體   English   中英

如何將 map pojo 類的字段字符串 object 從 API 返回

[英]How to map pojo class's field to string object returning from API

I am working on an application where I want to convert string object coming from data api to json object.Now, I converted string object to json but there is a problem. 我的 pojo class 有多個字段,對應的 getter 和 setter 其中之一是“filterName”,它看起來像

   @SerializedName(value="cellFilter", alternate="tissueFilter")
    private String filterName;

它的作用是提取與“cellFilter”和“tissueFilter”相關的值。 我不確定它是否是使用相同字段淘汰數據的優化方式。 另外,我想使用同一個字段來檢索另一個值,但我不知道該怎么做(即我想使用 filterName 來獲取 organizationFilter、cellFilter 和 applicationFilter 的值)。

數據 object 如下所示 注意 - 組織過濾器、細胞過濾器和應用過濾器有 3 個字符串,它們來自數據 api。 在 java 對象中轉換它們后,它們看起來像這樣,

組織過濾器


 {
    "url": "xyz",
    "sortOrder": 8,
    "imageId": "1111",
    "tissueFilter": "Heart"
  }

細胞過濾器

{
    "url": "xyz",
    "sortOrder": 6,
    "imageId": "2222",
    "cellFilter": "Pancreas"
  }

和應用過濾器

 {
    "applicationFilter": "c56",
    "url": "xyz",
    "sortOrder": 1,
    "imageId": "3333",
  }

謝謝

如果 Jackson JSON 庫用於序列化/反序列化 JSON 數據,則應應用@JsonAlias注釋可能具有不同名稱的字段來反序列化:

@Data
class Pojo {
    private String url;
    private int orderId;
    private String imageId;

    @JsonAlias({"applicationFilter", "cellFilter", "tissueFilter"})
    private String filter;
}

在對提到的 JSON 片段進行反序列化后,應將字段filter設置為定義為"applicationFilter"等的適當值。


但是,問題中似乎使用了 Gson ,並且其@SerializedName還允許在alternate參數中使用多個版本:

@Data
class PojoForGson {
    private String url;
    private int orderId;
    private String imageId;

    @SerializedName(value = "cellFilter" alternate = {"applicationFilter",  "tissueFilter"})
    private String filter;
}

暫無
暫無

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

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