JSON 对比

递归对比两份 JSON,按路径列出新增、删除、修改与类型变化差异

JSON 对比是做什么的

两份 JSON 改了哪里,肉眼逐层找非常容易漏。本工具把两侧 JSON 解析后递归对比,精确到 data.items[0].price 这样的路径,逐条列出新增、删除、修改和类型变化,旧值新值并排展示,一眼看清全部变更点。

对比是纯本地递归实现,不依赖任何服务。对象按键名匹配,数组默认按下标对齐,可勾选忽略数组顺序(按元素内容排序后匹配)、忽略指定字段(逗号分隔),并可选择键顺序不同是否计入差异。长值会截断显示以保证列表可读。

核心功能

  • 递归对比并输出完整路径差异
  • 区分新增、删除、修改、类型变化四类
  • 可忽略数组顺序,按内容匹配元素
  • 支持逗号分隔忽略指定字段
  • 差异按类型着色高亮,一目了然

JSON 对比怎么用

递归对比两份 JSON,按路径列出新增、删除、修改与类型变化差异

  1. 左右两个文本框分别粘贴旧、新 JSON
  2. 按需勾选忽略数组顺序、键顺序选项或填写忽略字段
  3. 点击「对比」,也可先点「填入示例」了解输出格式
  4. 查看按路径排列的差异列表及新旧值对照

适合这些场景

  • 接口升级前后响应结构变更排查
  • 配置文件、环境 JSON 差异核对
  • 爬虫或脚本输出数据变化追踪

常见问题

数组顺序变了算差异吗?

默认按下标对齐,顺序变化会被报为修改;勾选「忽略数组顺序」后先按元素内容排序再对比,仅内容变化才计入。

怎么跳过时间戳、自增 id 这类必变字段?

在忽略字段输入框填逗号分隔的字段名,如 updatedAt,id,这些路径在任何层级都会被跳过。

键顺序不同会被报成差异吗?

默认勾选「键顺序不同不算差异」,不影响结果;取消勾选后同键集合但顺序不同的对象会给出键顺序提示。