java - 在 Java 中合并(Concat)多个 JSONObject

标签 java json concat

我正在使用来自两个不同来源的一些 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");

所以在这种情况下,我想将 Obj1Obj2 结合起来,以创建一个全新的 JSONObject 或将一个连接到其他。除了将它们全部分开并通过 puts 单独添加之外,还有什么想法吗?

最佳答案

如果你想要一个有两个键的新对象,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/

相关文章:

java - 查找等待从 ArrayBlockingQueue 轮询的任务数量?

rust - 如何在 `quote!` 宏中的变量之后立即连接 token ?

MySQL concat 与 INNER JOIN

java - 线程在 DriverManager.getConnection 上挂起

java - 当组件已经测试时测试复合对象 ->冗余?

ios - 调用注释填充TableView : correcting code errors

javascript - react : RestAPI JSON response : How to Parse

c# - JSON 反序列化异常 ('' S' 是值的无效开始)

javascript - 如何在javascript中的对象内部连接子对象数组?

java - 通过Java在SQL中创建变量表名?