![](/img/trans.png)
[英]Jackson: convert JSON representing a Map<String,Object> of single-field POJO's to a Map<String,String> of field values?
[英]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.