json对象的合并

最近接触到k8s的声明式api,突然想到当已经有一个json,然后又声明了一个新json的时候,两个json对象应该如何合并的问题。

查看了下fastjson的api,原来已经有接口实现

复制代码
 public static void main(String[] args) {
        String s1="{\"a\":1,\"c\":[1,2,3]}";
        String s2="{\"a\":3,\"b\":2,\"c\":[4,5]}";
        JSONObject jsonObject1 = JSON.parseObject(s1);
        JSONObject jsonObject2 = JSON.parseObject(s2);
        System.out.println("s1="+jsonObject1);
        System.out.println("s2="+jsonObject2);
        jsonObject2.putAll(jsonObject1);
        System.out.println("s2="+jsonObject2);

        String s3="[1,2,3]";
        String s4="[4,5]";
        JSONArray array1 = JSON.parseArray(s3);
        JSONArray array2 = JSON.parseArray(s4);
        System.out.println("s3="+array1);
        System.out.println("s4="+array2);
        array2.addAll(array1);
        System.out.println("s4="+array2);
    }
复制代码

输出:

s1={"a":1,"c":[1,2,3]}
s2={"a":3,"b":2,"c":[4,5]}
s2={"a":1,"b":2,"c":[1,2,3]}
s3=[1,2,3]
s4=[4,5]
s4=[4,5,1,2,3]

从输出看,可以明白json合并的基本原则,JSONObject跟map的put基本相同,

1.如果新旧的json有相同的key,则用新的value覆盖旧的value

2.如果旧的json没有key,而新json有的key,则直接将新key添加到旧json

3.如果旧json有key,而新json没有key,则保留就的json的key

JSONArray的合并逻辑基本与list相同,就是把新的元素加入到旧的array中,不考虑相同元素的冲突

posted @   Mars.wang  阅读(1081)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
历史上的今天:
2022-02-17 图数据库Neo4j简介
点击右上角即可分享
微信分享提示