一款基于Java的JSON内容对比工具类,结合Jackson一起使用

Maven依赖:

  <dependency><groupId>com.flipkart.zjsonpatch</groupId><artifactId>zjsonpatch</artifactId><version>0.4.9</version></dependency>

生成JSON差异包使用方式:

JsonNode.asJson(JsonNode source, JsonNode target,  EnumSet<DiffFlags> flags);
  • source【JsonNode 】:json比较的基础对象

  • target【JsonNode 】:json比较的对比对象

  • flags【DiffFlags】:对比结果状态标识,可选值有4个

    • OMIT_VALUE_ON_REMOVE 忽略删除的字段,默认值配置
    • OMIT_MOVE_OPERATION 忽略移动操作,例如增加此配置时比较数组[a,b,c]与[c,b,a]时,对比结果为按照顺序严格模式进行比较,结果是delete 1,add 3。如果不增加该配置结果是remove a到第3个位置
    • OMIT_COPY_OPERATION 忽略复制操作,例如增加此配置时比较数组[a,b,c]与[a,a,b,c]时,对比结果为按照顺序严格模式进行比较,结果是在第2个位置add a。如果不增加该配置结果是copy a到第2个位置
    • ADD_ORIGINAL_VALUE_ON_REPLACE 比较结果中增加原始值
    • EMIT_TEST_OPERATIONS 比较结果中增加测试信息

使用在源JSON数据上应用JSON差异包

(1) 该方法会产生一个新的JsonNode对象
 JsonNode apply(JsonNode patch, JsonNode source, EnumSet<CompatibilityFlags> flags);
  • patch【JsonNode 】:json差异包对象

  • target【JsonNode 】:json源对象

  • flags【CompatibilityFlags】:应用差异包标识

    • MISSING_VALUES_AS_NULLS 忽略空对象
    • REMOVE_NONE_EXISTING_ARRAY_ELEMENT 移除不存在的列表项
    • ALLOW_MISSING_TARGET_OBJECT_ON_REPLACE 允许忽略当前对象中替换的对象
(2) 该方法不会产生一个新的JsonNode对象,而是直接修改原对象
  JsonPatch.applyInPlace(JsonNode patch, JsonNode source, EnumSet<CompatibilityFlags> flags);
  • patch【JsonNode 】:json差异包对象

  • target【JsonNode 】:json源对象

  • flags【CompatibilityFlags】:应用差异包标识

    • MISSING_VALUES_AS_NULLS 忽略空对象
    • REMOVE_NONE_EXISTING_ARRAY_ELEMENT 移除不存在的列表项
    • ALLOW_MISSING_TARGET_OBJECT_ON_REPLACE 允许忽略当前对象中替换的对象

JSON内容对比工具相关推荐

  1. Winform,RichTextBox,Json文本对比工具

    在工作中,有的时候需要做一些Json对比的需求,通过肉眼去找到不一样的地方 当然,现在有很多可以做对比的小工具,比如Beyond Compare 但是这个有个弊端,如果对比的时候是个Json字符串,没 ...

  2. 文字内容对比工具-BeyondCompare

    1.下载路径,进入腾讯软件中心,下载即可: [Beyond Compare下载]2022年最新官方正式版Beyond Compare收费下载 - 腾讯软件中心官网 2.安装,安装完成后打开,把文件A拖 ...

  3. Json数据的对比工具,对比库(含js在线对比工具,.net 的jsondiffer包)

    1)如果是偶尔手工对比两个值,可以借助json的在新对比工具: 在线地址: json在线对比工具 2)如果是.net 中对比两个json的差异. 建议使用:NuGet Gallery | JsonDi ...

  4. JSON数据的差异对比工具(Java版)

    目录 背景 说明 源码 源码走读 其他 背景 之前有类似接口diff对比,数据对比的测试需求,涉及到json格式的数据对比,调研了几个大神们分享的代码,选了一个最符合自己需求的研究了下.(可惜原文链接 ...

  5. 在线JSON在线对比差异工具

    在线JSON在线对比差异工具 在线JSON在线对比差异工具 JSON在线对比差异工具,JSON在线对比差异工具,JSON在线对比差异工具 https://tooltt.com/json-diff/

  6. mysql 连接差异_和你一起从 0 实现一个数据库差异对比工具

    对比数据的痛苦 不知道你是否也像我一样,在快乐编写代码的时候,必须进行一些数据库的数据对比工作. 诚然,一般的数据差异,比如是每一行的内容不同,市场上有比较成熟的 compare2 等对比工具. 但是 ...

  7. Python 自动化办公之 Excel 对比工具

    作者 | 周萝卜 来源丨萝卜大杂烩 今天我们继续分享真实的自动化办公案例,希望各位 Python 爱好者能够从中得到些许启发,在自己的工作生活中更多的应用 Python,使得工作事半功倍! 需求 由于 ...

  8. 【PC工具】更新win10关闭更新工具,接速度最快最好用的文件内容搜索工具:searchmyfiles...

    微信关注 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 今天一个朋友向我咨询win10更新的关闭方法,主要是因为她的办公电脑经常提示更新,并且 ...

  9. Windows文件夹、文件源代码对比工具--WinMerge

    /*********************************************************************** Windows文件夹.文件源代码对比工具--WinMe ...

最新文章

  1. pandas学习之Series结构
  2. IC/FPGA笔试/面试题分析(十一)基础概念(三态门等)
  3. 网站出现service unavailable的解决方法
  4. 阿里开源Mysql分布式中间件:Cobar
  5. iTOP-4412开发板驱动lcd显卡以及linux开机log的修改方法
  6. flex与java实现增删改查
  7. Shell-Scp自动输入密码
  8. Ionic系列——环境配置和项目搭建
  9. 魔兽争霸Ⅲ运行时不能初始化directX的错误解决
  10. 牛客网 第十七届中国计量大学程序设计竞赛(同步赛)(重现赛)B题 Broken Pad 暴力+思维
  11. 74-A/D指标,Accumulation/Distribution,积累/派发线,离散指标.(2015.7.1)
  12. squid代理服务器在企业网中的应用
  13. Java零基础学习之路(十三)Java super
  14. 超级计算机开采金矿,科学家发现地球内部有超60万亿吨金矿,为什么没人敢开采?...
  15. jquery $.fn $.fx原理
  16. 腾讯区块链+医疗,一场值得期待的卫生行业创新探索
  17. source ./ 和 . 的区别
  18. 基于STM32设计的宠物投喂器
  19. 10个空手套白狼案例:不花一分钱为自己赚大钱
  20. UOS系统中安装x11vnc远程桌面

热门文章

  1. 大数据学习笔记(一)
  2. 联邦学习FATE框架安装
  3. 计算机专业c 用到的文献,【计算机专业论文】高校非计算机专业C程序设计的微课教学(共2539字)...
  4. Github实时域名查询
  5. 解决EasyExcel创建excel下拉框,下拉框内容过多时不显示的问题
  6. 【通信原理】实验六 基于Matlab的2PSK和2DPSK调制
  7. EndNote 使用用法
  8. 软件设计师备考经验分享
  9. app外壳 android,带壳录屏最新版
  10. Xcode13编译提示构建系统错误Legacy Build System