如何使用使用javax.json的JAVA合并JsonObjects;

时间:2014-09-25 10:45:28

标签: java json

我有两个使用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();

3 个答案:

答案 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();
    }