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

时间:2013-04-24 09:35:48

标签: java json

我有两个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 个答案:

答案 0 :(得分:3)

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);