我正在使用来自两个不同来源的一些 JSON,我最终得到了两个 JSONObject
,我想将它们合并为一个。
数据:
"Object1": {
"Stringkey":"StringVal",
"ArrayKey": [Data0, Data1]
}
"Object2": {
"Stringkey":"StringVal",
"Stringkey":"StringVal",
"Stringkey":"StringVal",
}
代码,使用 http://json.org/java/图书馆:
// jso1 and jso2 are some JSONObjects already instantiated
JSONObject Obj1 = (JSONObject) jso.get("Object1");
JSONObject Obj2 = (JSONObject) jso.get("Object2");
所以在这种情况下,我想将 Obj1
和 Obj2
结合起来,以创建一个全新的 JSONObject
或将一个连接到其他。除了将它们全部分开并通过 put
s 单独添加之外,还有什么想法吗?
最佳答案
如果你想要一个有两个键的新对象,Object1 和 Object2,你可以这样做:
JSONObject Obj1 = (JSONObject) jso1.get("Object1");
JSONObject Obj2 = (JSONObject) jso2.get("Object2");
JSONObject combined = new JSONObject();
combined.put("Object1", Obj1);
combined.put("Object2", Obj2);
如果你想合并它们,例如顶级对象有 5 个键(Stringkey1、ArrayKey、StringKey2、StringKey3、StringKey4),我认为您必须手动执行:
JSONObject merged = new JSONObject(Obj1, JSONObject.getNames(Obj1));
for(String key : JSONObject.getNames(Obj2))
{
merged.put(key, Obj2.get(key));
}
如果 JSONObject 实现了 Map 会容易很多,并支持 putAll。
关于java - 在 Java 中合并(Concat)多个 JSONObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2403132/