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中,不考虑相同元素的冲突
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
2022-02-17 图数据库Neo4j简介