簡體   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