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