为了账号安全,请及时绑定邮箱和手机立即绑定

java json 合并

java json 合并

慕少森 2019-03-01 10:37:41
现有两段json第一段 { "sheets": { "Sheet1": { "name": "Sheet1", "data": { "dataTable": { "0": { "0": { "value": 1, "style": { "autoFormatter": {} } } } } } } } } 第二段 { "sheets":{ "Sheet1":{ "name":"Sheet1", "activeRow":1, "data":{ "dataTable":{ "0":{ "0":{ "value":11, "style":{ "autoFormatter":{ } } } }, "1":{ "0":{ "value":2, "style":{ "autoFormatter":{ } } } } } } }, "Sheet2":{ "name":"Sheet2", "activeRow":2, "data":{ "dataTable":{ "0":{ "0":{ "value":1, "style":{ "autoFormatter":{ } } } } } } } } } 在第一段的基础上把第二段合并进去,生成新的json,发生变化的更行,没有的增加,有什么好办法吗
查看完整描述

4 回答

?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

把两个json转对象,对象再合并,然后再将合并后的对象转json

查看完整回答
反对 回复 2019-03-01
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

实现方法如下:

public JSONObject deepMerge(JSONObject source, JSONObject target) {
        Set<String> set = source.keySet();
        for (String key: set) {
            Object value = source.get(key);
            if (!target.containsKey(key)) {
                target.put(key, value);
            } else {
                if (value instanceof JSONObject) {
                    JSONObject valueJson = (JSONObject)value;
                        deepMerge(valueJson, target.getJSONObject(key));
                } else {
                    target.put(key, value);
                }
            }
        }
        return target;
    }
查看完整回答
反对 回复 2019-03-01
  • 4 回答
  • 0 关注
  • 578 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号