具有相同键和不同值的两个JsonObject的合并

问题描述:

我有两个具有相同键但不同值的JsonObject。 我想合并两个JsonObject与另一个JsonObject中的同一个键。具有相同键和不同值的两个JsonObject的合并

JSONObject a = new JSONObject("{\"data\": [ {\"empId\": 1,\"deptId\": 2},{\"empId\": 3,\"deptId\": 4}]}"); 
JSONObject b = new JSONObject("{\"data\": [ {\"empId\": 7,\"deptId\": 8},{\"empId\": 9,\"deptId\": 10}]}"); 

结果应该是这样的。

{\"data\": [ {\"empId\": 1,\"deptId\": 2},{\"empId\": 3,\"deptId\": 4},{\"empId\": 7,\"deptId\": 8},{\"empId\": 9,\"deptId\": 10}]} 

请让我知道如何做到这一点。

+1

你想要结果是什么? – 2013-04-24 09:37:24

+1

目前还不清楚你想要什么结果。请提供对象'c',这是'a'和'b'合并的结果。 – pfyod 2013-04-24 09:38:30

+0

我编辑了这个问题,添加了结果JsonObject应该如何。感谢您的回复。 – user2261222 2013-04-24 09:54:03

使用JSONArray存储多个JSONObject。使用这个不需要担心为这个JSONObject例如

JSONObject a = new JSONObject("{\"data\": [ {\"empId\": 1,\"deptId\": 2},{\"empId\": 3,\"deptId\": 4}]}"); 
JSONObject b = new JSONObject("{\"data\": [ {\"empId\": 7,\"deptId\": 8},{\"empId\": 9,\"deptId\": 10}]}"); 

编辑

JSONArray jArr_A= a.getJSONArray("data"); 

JSONArray jArr= new JSONArray(); 
for(int i=0;i<jArr_A.length();i++){ 
    jArr.put(jArr_A.getJSONObject(i)); 
} 

现在另一个对象

jArr_A= b.getJSONArray("data"); 

for(int i=0;i<jArr_A.length();i++){ 
    jArr.put(jArr_A.getJSONObject(i)); 
} 

现在检查jArr对象的长度有它的两倍。

JSONObject mainJson = new JSONObject(); 
mainJson.put("data", jArr); 
+0

请编辑一些我无法获取代码格式工具 – Pratik 2013-04-24 09:44:50

+0

感谢您的回复,但我从两个不同的地方获得JsonObjects具有相同的键,但值是不同的对象列表。所以我想要在新的JsonObject中合并具有相同给定键的对象列表。 – user2261222 2013-04-24 10:00:47

+0

嗨请检查更新的答案 – Pratik 2013-04-24 10:34:09