java - 使用嵌套在 Object 中的 Object 生成 JSON 数据
问题描述
在这里稍微打结,并试图理解 JSON 到 POJO 的映射,但仍然遇到棘手的问题。
我需要生成以下 JSON:
{"primaryCustomer":
{
"customerClaims":[]
}
}
显然我需要一个primaryCustomer
实例,它的 setter 需要一个空customerClaims
数组对象。看起来很简单,但我无法到达那里。
给定 POJO 如下:
@Data
public class PrimaryCustomer {
@JsonProperty("primaryCustomer")
private PrimaryCustomer primaryCustomer;
@JsonProperty("customerClaims")
private CustomerClaims customerClaims;
}
和:
@Data
public class CustomerClaims {
@JsonProperty("customerClaims")
private List<Object> customerClaims = null;
}
并编写生成 JSON 的代码:
pc = new PrimaryCustomer();
cc = new CustomerClaims();
cc.setCustomerClaims(new JSONArray());
pc.setCustomerClaims(cc);
...产量:
{
"primaryCustomer" : null,
"customerClaims" : {
"customerClaims" : []
}
}
解决方案
PrimaryCustomer
在同一类中使用 with不会CustomerClaims
产生您想要的结果并可能导致Stackoverflow
错误。您可以创建一个JsonEntity
类,PrimaryCustomer
如下所示,
@Data
public class JsonEntity {
@JsonProperty("primaryCustomer")
private PrimaryCustomer primaryCustomer;
}
@Data
public class PrimaryCustomer {
@JsonProperty("customerClaims")
private CustomerClaims customerClaims;
}
以及生成 JSON 的代码:
json = new JsonEntity();
pc = new PrimaryCustomer();
cc = new CustomerClaims();
cc.setCustomerClaims(new JSONArray());
pc.setCustomerClaims(cc);
json.setPrimaryCustomer(pc);
我希望它有所帮助。
推荐阅读
- c# - 将 JSON 反序列化为 C# 类
- javascript - 在 JSP 中使用 JavaScript 取消隐藏 HTML 行
- java - 在 maven 中使用 java-gnome 的困难
- python - 如何将浮点数连接到列表?
- gitlab - Gitlab CI 中的 SonarScanner 作业问题
- react-native - 如何使用 react-native-image-picker 上传图片?
- user-interface - 是否可以在 Automation Studio 中导出 HMI?(地图视图)
- arrays - c 通过 for 循环和索引在末尾旋转
- graph - 如何使用邻接列表和邻接矩阵计算 whighed 图的弧数“
- python - 如何使用 Python 在堆积条形图中添加百分比条形标签