LianjiaTech / json-diff

A tool for find difference between two json-string. Support JSON string depth comparison, support JSON array unordered comparison. (用于比较两个JSON字符串的工具,支持JSON字符串深度比较,支持无序数组比较)
MIT License
51 stars 13 forks source link

JsonDiff介绍

JsonDiff提供了对Json通用的diff能力,支持Json字符串的深度比较,支持无序数组比较,内含多种算法模型满足对Json比较时各种需求。 同时JsonDiff也支持自定义算法、算法模型可配置、噪音字段过滤、自定义比较字段等多种通用功能。

1.JsonDiff是什么

JsonDiff可以对输入的两个Json字符串进行差值比较,利用diff算法得到差异化最小的比较结果。diff结果会展示2个Json字符串中不同结果的值、路径以及修改类型。

例如:

2.diff的算法模型

json的比较算法可以抽象为针对四种json基本结构的比较(JsonArray,JsonObject,JsonNull,JsonPrimitive),因此json-diff主要抽象了以下四种比较器能力以及默认实现。

基本结构 算法模型 实现
JsonObject ObjectComparator 针对对象类型的比较
JsonArray ArrayComparator 针对数组类型的比较
JsonPrimitive PrimitiveComparator 针对基本类型的比较
JsonNull NullComparator 针对NULL的比较

3.features

4.diff的使用方式

步骤1:构造Diff入口

5、第三方依赖

含义
gson包 用于解析json最基础的工具类
guava包 用于字符串拼接、集合合并、字符串转换等功能的工具类