java - ObjectMapper - 字符串 JSON 到带有子级数组的 java 对象
问题描述
我正在尝试将 json 字符串反序列化为对象,并面临一个问题,即我在子级别中有对象数组。我查看了下面的stackoverflow链接,他们为每个子级别设计了一个类和一个类;并将 List<> 用于数据数组。我使用了相同的方法,但每个对象都有单独的类(单独的 java 文件)
让我给你一个我的代码的愿景:
人员详细信息的 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
但没有运气。谁能给我一些想法或者可能是什么错误。提前致谢。
解决方案
基本上上面的结构应该可以正常工作,正如评论区所指出的那样。最初对我没有用,因为我没有注意到我的字段名称是错误的,通过纠正这种工作就像魅力。
推荐阅读
- python - 加载存储在 BytesIO 对象中的 json 文件的正确方法是什么?
- java - 将服务任务/结束事件/终止事件动态映射到现有的独占网关传出序列流 (Camunda)
- python - oAuth“未提供密码,但私钥已加密”
- java - 保存视频时本地通知不起作用
- php - 我找不到从 Docusign 获取我生成的电子签名的方法
- laravel - laravel 中的 IMAP 异常,imap_open():无法打开流
- php - 使用 SET NAMES utf8mb4 和 utf8 表
- z3 - Z3 中的 pb.conflict 是什么?
- cassandra - 对于 system_auth 默认类应该是 SimpleStrategy 或 NetworkTopologyStrategy
- c# - 修改 ASP.NET OWIN 管道中的传入请求