JSON 对比

按结构对比两份 JSON:忽略 key 顺序、数字按数值比较,列出每一个新增、删除与修改的字段及其 JSON Path。

差异

在左右两边输入 JSON,就会列出差异。

类型 路径 原本 新的

点击任一行,会在左右两边标出位置。

JSON 对比是什么?

一般的文本对比会因为排版、缩进或 key 的顺序不同而显示一堆差异。本工具先把两边解析成 JSON 结构再比较,只列出真正不同的数据,例如 API 改版前后的响应、两个环境的配置文件。

如何使用

  1. 左边粘贴原本的 JSON,右边粘贴新的 JSON,开启「自动对比」时会立即列出差异。
  2. 每一项差异会标示类型(新增、删除、修改)与 JSON Path,例如 $.order.items[0].price。
  3. 点击差异,左右两边会标出位置;点「复制报告」可以粘贴到 PR 或文档中。

对比规则

示例

原本 {"name":"Keyboard","price":980.00,"tags":["office","usb"]},新的 {"price":980,"name":"Keyboard Pro","tags":["office","bluetooth"],"color":"black"},报告为:

~ $.name: "Keyboard" → "Keyboard Pro"
~ $.tags[1]: "usb" → "bluetooth"
+ $.color: "black"

price 从 980.00 变成 980,数值相同,所以不列出。

常见问题

报告开头的 + - ~ 是什么意思?

+ 是右边新增的字段,- 是右边删除的字段,~ 是两边都有但值不同,箭头左边是原本的值、右边是新的值。

数组顺序不同,为什么显示很多差异?

数组在 JSON 中是有顺序的,[1, 2] 与 [2, 1] 是不同的数据,所以会逐一比较每个位置。若顺序不重要,可以先在生成 JSON 的程序中排序再对比。

JSON 有错误时怎么办?

消息会说明是左边还是右边有错,以及错误的行号与列号,点「跳到错误位置」即可找到。若是少了逗号、多了逗号这类错误,可以先用 JSON 格式化的「修复」功能处理。