首页 > 其他分享 >Json差异比较

Json差异比较

时间:2024-05-27 15:34:17浏览次数:11  
标签:name age dog defectsList json 比较 Json 差异 cn

json差异比较

在这里插入图片描述

在这里插入图片描述

如何比较两个json的差异

代码实现

  1. 导入依赖
 <dependency>
            <groupId>cn.xiaoandcai</groupId>
            <artifactId>json-diff</artifactId>
            <!-- 旧版本可能存在某些缺陷。版本请以maven仓库最版为准。 -->
            <version>4.1.3-RC1-RELEASE</version>
        </dependency>

        <!-- 选择json解析框架。fastjson, fastjson2,gson,jackson 之一 -->
        <dependency>
            <groupId>cn.xiaoandcai</groupId>
            <artifactId>json-diff-impl-fastjson</artifactId>
            <version>4.1.3-RC1-RELEASE</version>
        </dependency>
  1. 用例实现
 @Test
    public void testJsonDiff() throws JSONException, JsonProcessingException {
        String json1 = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\",\"phone\":\"13800000000\",\"dog\":{\"age\":4,\"name\":\"mojo\",\"weight\":\"21.5\"}}";
        String json2 = "{\"name\":\"John\", \"age\":35, \"city\":\"Chicago\",\"qq\":\"123456789\",\"dog\":{\"name\":\"mojo\",\"age\":\"2\",\"color\":\"red\"}}";
        JsonComparedOption jsonComparedOption = new JsonComparedOption().setIgnoreOrder(true);
        JsonCompareResult jsonCompareResult = new DefaultJsonDifference()
                .option(jsonComparedOption)
                .detectDiff(json1, json2);

        List<Defects> defectsList = jsonCompareResult.getDefectsList();
        for (Defects d : defectsList) {
            Object actual = d.getActual();
            Object expect = d.getExpect();
            System.out.println("路径:" + d.getTravelPath().getAbstractTravelPath() + ",旧值:" + expect + ",新值:" + actual);
        }
    }

执行结果
在这里插入图片描述

标签:name,age,dog,defectsList,json,比较,Json,差异,cn
From: https://blog.csdn.net/u011628753/article/details/139239282

相关文章

  • GeoJSON数据转shp文件
        利用QGis工具,使用GeoJSON数据转换生成shp文件,用于GeoServer发布shp图层服务。首先准备一份GeoJSON文件,文件格式为“.json”,文件接入如下:详细操作如下:1、启动QGis工具2、从左上角找到按钮“opendatasourcemanager”,点击打开数据源3、选择数据源,显示如下......
  • 相机标定工具的评价和比较研究
    相机标定工具的评价和比较研究论文:https://arxiv.org/pdf/2306.09014v1附赠自动驾驶最全的学习资料和量产经验:链接摘要在许多基于摄像机的应用中,需要通过几何相机标定(GCC)找到入射光线和图像像素之间的几何关系,即投影模型。为了提供实用的标定指南,本文调查和评估了现......
  • .NET集成DeveloperSharp实现http网络请求&与其它工具的比较
     爆了,爆了,DeveloperSharp系列近期又被制造业ERP、民航飞行App、建筑BIM、电力掌上营业厅、等多家大型采用,站在巨人的肩膀上你能走的更远。 支持.NetCore2.0及以上,支持.NetFramework4.0及以上http请求调用是开发中经常会用到的功能。在内,调用自有项目的WebApi等形式接口时......
  • JDBC & 数据库连接池:详述Java 数据库操作的基础,数据库连接池的使用以及原理,比较常用数
    JDBC基础 JDBC的定义和目的 JDBC(JavaDatabaseConnectivity)是一个用于执行SQL语句的JavaAPI,可以与多种关系数据库进行交互,这的API由一组用Java语言编写的类和接口组成。 JDBC鼓励供应商使用JDBC驱动程序,该驱动程序可以通过数据库管理系统的客户机接口与各个数......
  • Http请求携带JSON字符串,报错415
    //使用ajax向后端发送post请求,响应415letjsonObj={"username":"zhangsan","password":"1234"}Vue.createApp({data(){return{message:''}},methods......
  • 【Python并发编程指南】多线程、多进程与异步编程比较与选择
    ......
  • 几种常用的配置文件格式对比分析——ini、json、xml、toml、yaml
    配置文件用于存储软件程序的配置信息,以便程序能够根据这些信息进行自定义和调整。常用的配置文件格式包括INI、XML、JSON和YAML。下面对它们进行简单介绍,并分析各自的优缺点。1.INI文件格式简介:INI(Initialization)文件是一种简单的配置文件格式,通常由节(section)、键(key)和......
  • 说说你了解过,使用过什么编程语言?比较他们的优势。
    至今为止,我只学习和使用过c语言,c++,java,了解过python。优势:c语言:语言相对与Java来说比较简洁而且灵活方便。编译与运行速度感觉是最快的。scanf函数与printf函数也比c++的cout和cin要快。而且灵活方便。还有一个突出的优点就是适合于多种操作系统,如DOS、UNIX,c++:说他为语言......
  • @JsonFormat注解出现日期序列化以及反序列化问题(日期比实际日期少一天)
    文章目录前言一、场景如下所示二、问题分析三、@JsonFormat注解是什么以下是@JsonFormat注解的一些常用属性:四、解决问题解决方式:只需要指定对应的时区就好效果如下:五、@JsonFormat注解时出现日期问题总结前言  在一次的偶然机会下发现了一个小问题,场景是这......
  • Content-Type 'application/json;charset=UTF-8' is not supported异常解决
    Content-Type'application/json;charset=UTF-8'isnotsupported异常解决前提:确定不是因为Content-Type导致的异常,controller层有注解@RequestBody。报错详情:确定不是因为缺少Jackson依赖或者版本过低:注意到报错信息上边有一条警告日志:.c.j.MappingJackson2HttpMessageCo......