2014-09-25 33 views
0

我有这两个使用javax.json的JsonObject。我怎样才能合并这三个,并作为一个贾森对象或JsonArray。请不要说我试过JASONObject,它没有工作,因为它是组织。库。如何合并使用JAVA的JsonObjects,它使用javax.json;

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

定义“合并”。 – 2014-09-25 11:48:35

+0

加入收藏并作为一个对象 – Vithushan 2014-09-25 12:13:11

+0

是的,但是如何?作为单个大的JSON对象,或包含JSON对象的JSON数组,或作为包含JSON对象的JSON对象 – 2014-09-25 12:16:02

回答

2

试试这个,

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

这是org.json格式。我已经尝试过,并没有奏效。但是,非常感谢您通过 – Vithushan 2014-09-25 12:12:47

+0

停止此答案应该被编辑为遵循javax.JsonObject而不是org.json,因为org.json的函数调用与javax.JsonObject相同,OP没有要求org.json。 – Martin 2015-10-15 11:07:52

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

而是写作org.json库,最后我写我自己的工具方法如下

参考:Merge 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(); 
    }