JSONObject两个json合并一块的时候key相同不覆盖
时间: 2023-09-04 14:11:59 浏览: 303
如果你要合并两个JSON对象,并且在合并时不希望相同的键被覆盖,可以使用以下方法:
```java
JSONObject mergedJson = new JSONObject();
// 第一个JSON对象
JSONObject json1 = new JSONObject("{\"name\":\"John\",\"age\":30}");
// 第二个JSON对象
JSONObject json2 = new JSONObject("{\"name\":\"Doe\",\"city\":\"New York\"}");
// 将第一个JSON对象的所有键值对添加到合并JSON对象中
for (String key : json1.keySet()) {
mergedJson.put(key, json1.get(key));
}
// 将第二个JSON对象的所有键值对添加到合并JSON对象中,但只添加没有出现过的键值对
for (String key : json2.keySet()) {
if (!mergedJson.has(key)) {
mergedJson.put(key, json2.get(key));
}
}
System.out.println(mergedJson.toString()); // 输出结果为: {"name":"John","age":30,"city":"New York"}
```
在这个示例中,我们首先创建一个空的JSON对象`mergedJson`,然后将第一个JSON对象`json1`的所有键值对添加到`mergedJson`中。接下来,我们将第二个JSON对象`json2`的所有键值对添加到`mergedJson`中,但只添加没有出现过的键值对。这样,我们就可以保留两个JSON对象中相同键的值,而不会覆盖它们。
阅读全文