繁体   English   中英

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

[英]How to merge JsonObjects using JAVA which uses javax.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();

我最终没有编写org.json库,而是编写了自己的实用程序方法,如下所示

参考: 合并2 javax.json.JsonObject

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

尝试这个,

JSONObject mergeJson = new JSONObject();
mergeJson.putAll(jo1);
mergeJson.putAll(jo2);
mergeJson.putAll(jo3);

我通过使用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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM