繁体   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