首页 > 解决方案 > ObjectMapper - 字符串 JSON 到带有子级数组的 java 对象

问题描述

我正在尝试将 json 字符串反序列化为对象,并面临一个问题,即我在子级别中有对象数组。我查看了下面的stackoverflow链接,他们为每个子级别设计了一个类和一个类;并将 List<> 用于数据数组。我使用了相同的方法,但每个对象都有单独的类(单独的 java 文件)

Json字符串解析为具有多个对象的java对象

如何使用 Jackson 反序列化对象数组

让我给你一个我的代码的愿景:

人员详细信息的 JSON

{
"name" : "abcd",
"age" : 30,
"addressList" : {
   "count" : 2,
   "data" : [
     {
      "state" : "NY",
      "city" : "Bronx"
     },
     {
      "state" : "NJ",
      "city" : "Chestnut"
     }
   ]
 }
}

课程

public class Person {
    private String name;
    private int age;
    private AddressList addressList;

    public Person() { }

    //getters and setters
}

public class AddressList {
    private int count;
    private List<Address> data;

    public AddressList() { }

    //getters and setters
}

public class Address {
    private String state, city;

    public Address() { }

    //getters and setters
}

在我的主要课程中,执行如下操作:

ObjectMapper mapper = new ObjectMapper();
Defect defect = mapper.readValue(jsonString, Person.class);

现在,除地址列表外,所有值都已正确加载。即使我尝试Address[]了而不是List<Address>inAddressList.java但没有运气。谁能给我一些想法或者可能是什么错误。提前致谢。

标签: javaarraysjacksondeserialization

解决方案


基本上上面的结构应该可以正常工作,正如评论区所指出的那样。最初对我没有用,因为我没有注意到我的字段名称是错误的,通过纠正这种工作就像魅力。


推荐阅读