java - 如何在 Java 中合并两个 JSON 对象
问题描述
我正在尝试合并两个 JSON 对象,以创建组合的 JSON 文件,以供服务使用。
第一个对象:
{
"reportRecords": [
{
"oldAgNumber": "00081433",
"newAgNumber": "00064210",
"loadStatus": "Y",
},
{
"oldAgNumber": "9945",
"newAgNumber": "00064211",
"loadStatus": "Y",
}
]
}
第二个对象:
{
"reportRecords": [
{
"oldAgNumber": "61699",
"newAgNumber": "00064211",
"loadStatus": "Y",
},
{
"oldAgNumber": "4564",
"newAgNumber": "00064211",
"loadStatus": "Y",
}
]
}
我想要的最终结果:
{
"reportRecords": [
{
"oldAgNumber": "00081433",
"newAgNumber": "00064210",
"loadStatus": "Y",
},
{
"oldAgNumber": "9945",
"newAgNumber": "00064211",
"loadStatus": "Y",
},
{
"oldAgNumber": "61699",
"newAgNumber": "00064211",
"loadStatus": "Y",
},
{
"oldAgNumber": "4564",
"newAgNumber": "00064211",
"loadStatus": "Y",
}
]
}
基本上,两者都是相同的对象,但在不同的时间生成,因此需要合并创建一个文件。
##################################这是有效的代码 - 有没有更好的方法让它起作用?
// This is json object1 ->getReportHistory
JsonObject reportjsonobject = new JsonParser().parse(getReportHistory).getAsJsonObject();
JsonArray jsonArray = reportjsonobject.getAsJsonArray("reportRecords");
// // This is json object2 ->newReportFile
JsonObject newjsonObject = new JsonParser().parse(newReportFile).getAsJsonObject();
JsonArray newjsonArray = newjsonObject.getAsJsonArray("reportRecords");
//add new copy agency data to history report
jsonArray.addAll(newjsonArray);
//Create new json object
JsonObject finaljsonObject = new JsonObject();
try {
//add json array to new obeject.
finaljsonObject.add("reportRecords", jsonArray);
} catch (Exception e) {
logger.debug("json merge exception:" + e);
}
return finaljsonObject;
解决方案
推荐阅读
- json - OpenAPI v3 HTTPS 模拟
- save - Gojs:如何保存属于 UI 而不是图表的数据?
- rest - 如何在 apache camel 中使用基本身份验证进行 RESTful 调用?
- regex - 电子邮件的正则表达式模式
- firebase - 目标 Kernel_snapshot 失败 Flutter
- regex - 从 AT 命令 AT+COPS 返回短字母数字运算符名称的 Bash 正则表达式
- selenium - Symfony,PHPUnit:客户端 Webdriver 身份验证
- java - 有没有办法禁用 MotionLayout 可见性更改动画?
- r - 替换特定列中的点
- html - 垂直和水平更改移动和桌面的块顺序