JSON 差异比较

分别解析并格式化两个 JSON 输入,执行基于 LCS 的行级差异比较。新增行显示为绿色,删除行显示为红色。可选择比较前排序键。

浏览器本地处理 无需注册 JSON

解析并格式化两份JSON,可选择递归排序对象键,然后按行显示差异。结果会区分新增、删除和未变化的行。

如何比较两份JSON

  1. 在左侧粘贴第一份JSON。
  2. 在右侧粘贴第二份JSON。
  3. 如果希望忽略对象属性顺序,请保持键排序开启。
  4. 运行比较并查看新增和删除的行。
  5. 如果某一侧JSON无效,请根据解析错误进行修正。

规范化与差异计算方式

每一侧都会用JSON.parse解析,再以2空格缩进重新序列化。开启键排序时会递归排序对象键,但数组顺序保持不变。

普通输入使用基于LCS的行差异算法。如果两侧行数乘积超过200,000,则跳过较大的LCS表,改为把左侧全部显示为删除、右侧全部显示为新增的简化fallback。

隐私与限制

比较完全在浏览器本地执行,不会为了处理而主动上传JSON。它是规范化文本后的行级diff,而不是JSON Patch生成器。大型文档可能使用简化fallback,数组元素顺序始终会被视为有意义。

常见问题

对象属性顺序会造成差异吗?

开启键排序后,单纯的对象键顺序差异会被规范化。

数组也会排序吗?

不会,数组顺序会保留。

JSON无效时怎么办?

工具会指出左侧或右侧哪一份JSON无效。

为什么大文件的差异可能比较粗?

当行数乘积超过200,000时会使用简化fallback而不是LCS。

会生成JSON Patch吗?

不会,只显示便于阅读的行级差异。