【发布时间】:2021-06-03 20:44:30
【问题描述】:
我正在尝试将 json 字符串反序列化为对象,并面临一个问题,即我在子级别中有对象数组。 我查看了下面的stackoverflow链接,他们为每个子级别设计了一个类和一个类;并将 List 用于数据数组。 我使用了相同的方法,但每个对象都有单独的类(单独的 java 文件)
Json string parsing to java object with multiple objects
How to use Jackson to deserialise an array of objects
让我给你看一下我的代码:
人物详细信息的 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);
现在,除地址列表外,所有值都已正确加载。即使我在AddressList.java 中尝试了Address[] 而不是List<Address>,但没有运气。
谁能给我一些想法或者可能是什么错误。提前致谢。
【问题讨论】:
-
@Kayaman 很抱歉造成混乱。这是一个错字。在 json 中更正它。
-
JSON有效载荷适合给定JavaPOJOs 类。一定是其他地方出了问题。 -
@MichałZiober 谢谢
-
这是我的错误。在重新检查整个 JSON 时,有一个名称错误的字段,因为它是大 json,所以不知何故错过了。无论如何,谢谢大家。
标签: java arrays jackson deserialization