在示例中,我有这两个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"}
]
}
];
答案 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
除了嵌套循环之外,还有一种更好的方法可以做到这一点,但无论
确保您没有将数组插入另一个数组,而是添加所有元素