JSON 差异比较

并排比较两段 JSON,快速找出新增、删除和修改的字段路径。

比较选项

工具简介:JSON 差异比较

JSON 差异比较用于并排对照两段 JSON 数据,快速定位新增、删除和修改的字段路径。它适合接口调试、配置审查、联调验收与版本回归,帮助你在结构变化很多时仍然能快速看清差异来源。

什么是 JSON 差异比较?

JSON 差异比较会递归分析两个 JSON 的对象字段与数组索引,把结构层级中的变化整理成可读的路径级结果。相比单纯肉眼比对格式化文本,这种方式更适合定位嵌套字段、数组元素和配置项的真实变化。

如何使用

  1. 在左侧粘贴原始 JSON。
  2. 在右侧粘贴要比较的 JSON。
  3. 视情况开启“比较前按键名排序对象字段”。
  4. 点击“开始比较”,查看差异条目、格式化结果与下载报告。

常见应用场景

  • 对比两次 API 响应,确认后端是否新增或删除字段。
  • 检查配置文件改动,定位风险较高的参数变化。
  • 联调时核对 Mock 数据与真实返回是否一致。
  • 回归测试时验证旧版本与新版本的数据结构差异。

✨ 功能亮点

  • 📍 路径级差异定位:直接展示如 $.meta.locale$.items[2].status 这样的路径,定位比纯文本对照更快。
  • 🔁 递归对象与数组:对象按字段比较,数组按索引逐项比较,适合大多数 API 与配置结构。
  • 🧹 排序后再比较:可先按键名排序对象字段,减少仅因字段顺序不同带来的干扰。
  • 📦 报告可复制/下载:适合把 diff 结果发给同事、放进 issue,或保留审查记录。

📋 示例

原始 JSON

{
  "project": "ToolMi",
  "version": "1.0.0",
  "features": {
    "jsonDiff": false,
    "jsonSchema": true
  },
  "tags": ["json", "compare", "nuxt"],
  "meta": {
    "locale": "en",
    "updatedAt": "2026-03-07"
  }
}

对比 JSON

{
  "project": "ToolMi",
  "version": "1.1.0",
  "features": {
    "jsonDiff": true,
    "jsonSchema": true,
    "jsonPath": true
  },
  "tags": ["json", "diff", "nuxt", "i18n"],
  "meta": {
    "locale": "fr",
    "updatedAt": "2026-03-08"
  }
}

典型差异结果

Changed $.version
Changed $.features.jsonDiff
Added $.features.jsonPath
Changed $.tags[1]
Added $.tags[3]
Changed $.meta.locale
Changed $.meta.updatedAt

🔧 使用建议

  1. 先确保 JSON 合法:去掉注释、尾逗号和非法引号,避免解析失败。
  2. 字段顺序不同先开排序:很多接口只变了输出顺序,先排序能减少误判。
  3. 关注路径而不是格式:真正有价值的是字段路径和对应值的变化,不是缩进和换行。
  4. 对大数组分段验证:数组很长时,建议先抽取关键片段比较,阅读成本更低。

❓ 常见问题 FAQ

Q1:为什么两个 JSON 看起来不一样,但结果没有差异?
A:可能只是字段顺序、空格或换行不同。这个工具比较的是解析后的结构和值,不比较排版。

Q2:数组是按值比较还是按索引比较?
A:当前按索引逐项比较,所以数组顺序变化也会被视为差异。

Q3:适合拿来比日志或长文本吗?
A:如果内容本质上是 JSON,非常适合;如果只是普通文本,建议使用文本差异比较工具。

Q4:可以导出结果吗?
A:可以,支持复制报告,也支持下载结构化差异报告。