JSON 对比工具

API 回归与配置迁移时,肉眼对比两段 JSON 极易遗漏嵌套字段变更。本工具递归比较两个 JSON 文档,列出新增、删除与修改的路径。建议先用 json-formatter 统一缩进便于阅读 diff 结果,OpenAPI 规范对比可配合 openapi-formatter 格式化后再 diff。

阅读完整指南: JSON 格式化与调试实战指南 →

隐私提示:本地解析,不上传服务器。

↓ 在下方输入区粘贴内容,结果会立即显示

粘贴两段 JSON,点击对比查看字段级差异。

JSON A(左侧)

JSON B(右侧)

差异列表

差异列表

~ version: 1 → 2
+ ready: true

注释说明

差异符号

+ 表示 B 新增字段,− 表示 A 独有字段,~ 表示同路径值发生变化。嵌套对象与数组会递归比较。

API 回归与配置迁移时,肉眼对比两段 JSON 极易遗漏嵌套字段变更。本工具递归比较两个 JSON 文档,列出新增、删除与修改的路径。建议先用 json-formatter 统一缩进便于阅读 diff 结果,OpenAPI 规范对比可配合 openapi-formatter 格式化后再 diff。

快速开始

  1. 粘贴 JSON A 与 B

    支持对象与数组; 需为标准 JSON 语法。

  2. 点击对比

    结果以 + / − / ~ 符号列出每个差异路径。

功能与使用场景

结构化对比两个 JSON 文档,高亮新增、删除与修改路径,支持格式化后比较。

API 契约回归、配置文件 drift 检测、LLM JSON 输出对比、数据库导出差异分析。

符号含义

+ 路径在 B 中新增;− 路径仅在 A 中存在;~ 同路径值发生变化。

典型工作流

开发中最常用场景是接口变更验证。先将旧版 API 响应复制到左侧,新版响应粘贴到右侧,工具会高亮字段变更。例如发现新增的『discount』字段或消失的『expired_at』字段,避免遗漏重要改动。

另一个实用场景是配置迁移检查。比如将开发环境的数据库配置 JSON 与生产环境对比,确保端口、密码等敏感字段一致。数组顺序差异会用蓝色标记,而值变更用红色,直观区分结构变动和内容变动。

路径级 diff 解读

diff 输出 added/removed/changed 路径(如 user.address.city)。数组 index 变化会显示为删除+新增——排序变更看起来像全量替换。对比数组前先 sort keys 或 normalize order。

类型变更(number → string)是 mobile client 崩溃常见原因——json-diff 高亮路径后,用 structured-output-validator 加 CI 门禁。

staging vs production 工作流

流程:两边响应 json-formatter 格式化 → 本工具 diff → incident 文档记录路径。勿 diff 含 token 的原始响应——先 redact。

Terraform plan JSON、K8s manifest 也可用同一流程;YAML 源文件先 yaml-converter。

误报与忽略

浮点精度、null vs missing key 可能语义相同但 diff 显示变更。建立 ignorePaths 列表(如 generatedAt)在团队 runbook 中。

semver-calculator 与 diff 无关,但 release PR 常同时 diff package.json 与 lockfile。

契约回归与发布门禁

把「上一版 fixture」与「候选响应」并排 diff,作为 API 发布门禁。键序无关时先规范化再比较;时间戳与请求 ID 应列入忽略列表,否则每次都会红。通过后把候选提升为新的黄金文件,并在 PR 描述粘贴关键 hunk 摘要。

生产事故对比「坏响应 vs 好响应」时同样用本工具;先脱敏再分享截图。配合 json-formatter 固定缩进,避免空白噪声。

数组与嵌套对象的可读策略

大数组按稳定键排序后再 diff;无法排序时至少比较长度与抽样元素。深层嵌套先展开到问题路径,再局部对比,而不是一次看完整树。

若 diff 显示类型变化(字符串变数字),优先修生产者,而不是在消费者里静默强转。

示例

版本升级

Input

{"version":1}

Output

{"version":2,"ready":true}

FAQ

数组顺序重要吗?

按索引逐项比较; 顺序变化会显示为多处 ~ 或 +/−。

为什么数组 [1,2,3] 和 [3,2,1] 被标记为差异?

默认采用严格模式,数组顺序不同视为差异。如需忽略顺序,可勾选「忽略数组顺序」选项(如有)。但注意这可能掩盖实际业务逻辑问题,如依赖顺序的队列数据处理。

数组顺序影响 diff 吗?

是,index 级比较;需语义数组 diff 请预处理排序。

大 JSON 会卡吗?

可能;截取 subtree 或 CLI diff。

支持 JSON5 吗?

需先转为严格 JSON(json-formatter)。

数据上传吗?

否,本地 diff。

可以忽略某些字段吗?

可以。先删除或占位易变字段再比较,或在测试代码里做字段白名单。

和 git diff 有何不同?

git diff 按文本行;JSON diff 按结构。结构变更用本工具更清楚。