如何合并2个JSON对象?

时间:2017-10-16 06:23:03

标签: java arrays json

在示例中,我有这两个JSON对象

jsonObject1 = [
             {"id": "1", "name": "name1", "children": [{"id": "2", "name": "name2"}] },
             {"id": "3", "name": "name3", "children": [{"id": "4", "name": "name4"}] }
             ];

jsonObject2 =[
             {"id": "4", "name": "name1", "children": [{"id": "6", "name": "name5"}] },
             {"id": "5", "name": "name3", "children": [{"id": "7", "name": "name6"}] }
             ]

如何将2个JSONObject合并为1个匹配外部对象名称并获得此结果?

mergedJsonObject = jsonObject1.merge(jsonObject2);

mergedJsonObject = [
                    {"id": "1", "name": "name1", "children": [
                                                             {"id": "2", "name": "name2"}, 
                                                             {"id": "6", "name": "name5"}
                                                             ] 
                    },
                    {"id": "3", "name": "name3", "children": [
                                                             {"id": "4", "name": "name4"},
                                                             {"id": "7", "name": "name6"}
                                                             ] 
                    }
                    ];

2 个答案:

答案 0 :(得分:1)

由于有问题的对象恰好是JSONArrays,为什么不(伪代码):

  merge (arr1, arr2) {
     for (int i=0; i < arr2.length, i++) {
        JSONObject row = arr2.get(i)
        arr1.add(row)
     }
     return arr1

答案 1 :(得分:0)

尝试以下内容。

for o1 in jsonObject1
    for o2 in jsonObject2
        if o1['name'] == o2['name']
           o1['children'].push(o2['children'])
// inspect jsonObject1

除了嵌套循环之外,还有一种更好的方法可以做到这一点,但无论

确保您没有将数组插入另一个数组,而是添加所有元素