我有两个使用javax.json的JsonObject。我如何合并这三个并拥有一个Jason Object或JsonArray。请注意,我没有尝试过JASONObject,因为它是org。库。
JsonObject jo = Json.createObjectBuilder()
.add("click", Json.createArrayBuilder()
.add(Json.createObjectBuilder()
.add("object", "Doe")))
.build();
JsonObject jo1 = Json.createObjectBuilder()
.add("open", Json.createArrayBuilder()
.add(Json.createObjectBuilder()
.add("page", "Doe")
.add("ms", "5000")))
.build();
JsonObject jo2 = Json.createObjectBuilder()
.add("open", Json.createArrayBuilder()
.add(Json.createObjectBuilder()
.add("page", "Doe")
.add("ms", "5000")))
.build();
答案 0 :(得分:1)
试试这个,
JSONObject mergeJson = new JSONObject();
mergeJson.putAll(jo1);
mergeJson.putAll(jo2);
mergeJson.putAll(jo3);
答案 1 :(得分:1)
我使用org.json lib更改了创建JASONObject部分,并且它有效;
JSONObject jo = new JSONObject();
jo.put("page", "some val");
jo.put("ms", time);
JSONObject finalObj = new JSONObject();
finalObj.put("open", jo);
JSONObject jo1 = new JSONObject();
jo.put("object", ele.getAttributes().getNamedItem("seleniumwebdriver").getNodeValue());
JSONObject finalObj = new JSONObject();
finalObj.put("click", jo);
以下是合并代码:
JSONObject finalArr = new JSONObject();
finalJsonArr.add(jo);
finalJsonArr.add(jo1);
答案 2 :(得分:1)
我没有编写org.json库,而是编写了一个我自己的实用方法,如下所示
参考:{{3}}
private JsonObject mergeProfileSummary(JsonObject oldJsonObject, JsonObject newJsonObject) {
JsonObjectBuilder jsonObjectBuilder =Json.createObjectBuilder();
for (String key : oldJsonObject.keySet()){
jsonObjectBuilder.add(key, oldJsonObject.get(key));
}
for (String key : newJsonObject.keySet()){
jsonObjectBuilder.add(key, newJsonObject.get(key));
}
return jsonObjectBuilder.build();
}