两个 JSONObject 合并的问题

最近使用 org.json.JSONObject 封装json数据,现在遇到想把两个 JSONObject 进行合并不知道怎么弄了,请教各位老司机指点一下。

import org.json.JSONObject;

JSONObject json1 = new JSONObject();
JSONObject json2 = new JSONObject();
        
json1.put("aa", 1111);
json1.put("bb", 2222);
        
json2.put("cc", 3333);
json2.put("dd", 4444);
        
System.out.println(json2);

想要得到json1与json2合并后的json格式,有没有相应的方法啊,我看了下API没找到。

{"aa":1111,"bb":2222,"cc":3333,"dd":4444}
阅读 20.1k
2 个回答

循环json2的所有key,value,再put到json1中不就可以了么 ^_^

新手上路,请多包涵

public static JSONObject deepMerge(JSONObject source, JSONObject target) throws JSONException {

    for (String key: source.keySet()) {
        Object value = source.get(key);
        if (!target.containsKey(key)) {
            // new value for "key":
            target.put(key, value);
        } else {
            // existing value for "key" - recursively deep merge:
            if (value instanceof JSONObject) {
                JSONObject valueJson = (JSONObject)value;
                deepMerge(valueJson, target.getJSONObject(key));
            } else {
                target.put(key, value);
            }
        }
    }
    return target;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
1 篇内容引用
推荐问题
宣传栏