首页 > 解决方案 > 如何在 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;

标签: javajson

解决方案


推荐阅读