跳到主要内容

JSON 差异对比 —— 按键路径比较两份 JSON

结构化 JSON 对比 —— 按键路径标出新增/删除/修改,三色差异树,浏览器本地

  • 本地处理
  • 分类 开发运维
  • 适合 格式化、校验、压缩或检查和代码相关的文本。
新增
0
删除
0
修改
0
未变
1
两边都粘贴 JSON 后即可看到结构化差异。

这个工具能做什么

免费在线结构化 JSON diff。左边粘原始 JSON,右边粘新的 JSON,工具不是 逐行比较纯文本,而是先把两边解析成 JSON 值,再递归遍历对象与数组, 精确报告哪些键路径被新增、删除或修改 —— 例如 `user.address.city` 从 "Berlin" 改成 "Munich",或者 `items[2]` 被删掉了。这个区别很关键: 用普通文本 diff 比两份 JSON,只要键的顺序变了或缩进变了,整行都会被 标成不同,哪怕数据其实一模一样。结构化 diff 能看穿格式、键顺序和缩进, 只给你反映真实数据变化的信号。 三个选项调节"什么算变化":忽略数组顺序(把数组当成无序集合比较,适合 标签列表或权限集合)、对比前先排序键、忽略字符串首尾空白。结果是一棵 三色差异树 —— 青色表示新增、粉色表示删除、紫色表示修改 —— 外加每一类 的实时计数,以及一键复制的差异摘要,可以直接粘到代码评审或 bug 报告里。 如果任意一侧不是合法 JSON,会清楚告诉你是哪一侧出错和具体的解析错误, 让你直接定位拼写问题而不是瞎猜。所有运算都在浏览器标签页里完成,两边 数据都不上传,适合处理不该离开本机的 API 响应、配置文件和功能开关快照。

工具细节

输入
文本 + 结构化内容
页面会根据工具类型展示文本框、数值控件、文件选择或结构化输入。
输出
即时结果 + 复制
结果区优先给出可操作结果,支持项会显示复制、下载或可视化预览。
隐私
浏览器本地处理
主工具逻辑未发现外部 API 调用,输入通常留在当前标签页内处理。
保存 / 分享
可分享链接状态
关键设置会进入 URL,复制链接后别人能复现同一组参数。
性能预算
首屏 JS ≤ 12 KB
没有声明 WASM 依赖,适合快速打开和移动端使用。
适用场景
开发运维 · 程序员
分类和职业标签用于推荐相关工具、组织内链,并帮助用户快速判断是否适合当前任务。

怎么用

  1. 1. 输入

    把内容粘贴或拖入工具面板。

  2. 2. 处理

    点击按钮,在浏览器内本地处理,文件不上传。

  3. 3. 复制 / 下载

    一键复制结果或下载到本地。

JSON 差异对比 适合怎么用

适合穿插在写代码、查问题、做 Review、上线前的小任务里。

适合开发场景

  • 格式化、校验、压缩或检查和代码相关的文本。
  • 把片段整理好再放进文档、工单、提交或交接材料。
  • 不切换工具,快速检查一个小 payload。

开发检查项

  • 压缩、混淆这类不可逆处理,先对副本操作。
  • 除非确认工具本地处理,不要粘贴密钥和敏感片段。
  • 转换后的代码上线前,仍要跑自己的测试或 lint。

下一步可以接着做

这些入口会把当前任务接到更完整的工具链里。

  1. 1 文本对比 比较两段文本 —— 行级新增/删除/相同 —— 高亮着色,浏览器本地 打开
  2. 2 JSON 格式化与校验 浏览器内即时格式化、校验、压缩 JSON,数据不离开本地。 打开
  3. 3 JSON 压缩工具 将 JSON 压成单行,可选递归排序对象 key,全部在浏览器本地完成。 打开

真实使用场景

  • 合并前审查 API 响应变化

    后端 PR 声称"只给用户接口加了一个字段"。把改动前后的响应分别 抓下来,粘进左右两栏,看差异树:如果唯一节点是 `+ data.user.timezone`,说法成立;如果还看到 `~ data.user.role` 被改或 `- data.user.email` 被删,你就抓到了 一个意外破坏。把摘要复制到 PR 讨论里当证据。

  • 对比两份配置或功能开关快照

    生产和预发表现不一致。把两份配置 JSON 都导出粘进来,差异会 精确标出哪些开关不同 —— 例如 `~ flags.checkout.newFlow: false → true`,不用拿肉眼扫两份 400 行的文件。如果两个导出器键顺序不同,打开"对比前先排序键"。

  • 验证数据迁移没有改坏记录

    转换完一份记录文件后,把源数据粘左边、迁移结果粘右边。预期的 改动(重命名的键、新增的 `migratedAt`)应该是仅有的节点。其它 任何东西 —— 丢掉的 `items[3]`、被转成字符串的数字 —— 都是迁移 bug,而且直接带着精确路径暴露出来。

  • 测试里把 fixture 和实时响应对比

    快照测试挂了,但断言信息是一大坨文本。把期望的 fixture 和实际 响应粘进来,只看真正不同的三四个键路径,而不是去滚动那种因为键 顺序变了就把整个对象标红的 diff。接口返回无序集合时,打开"忽略 数组顺序"。

  • 审计第三方 webhook 到底改了什么

    一个 webhook 触发了两次,body 略有不同。把两份 payload 都放进来, 看第二次是真更新还是只是换了 `timestamp` 的重复推送。修改计数 徽章一眼就能看出来:只有一个改动节点说明是心跳,十几个说明状态 真的动了。

常见踩坑

  • 当成文本 diff 用。这个工具刻意忽略键顺序和缩进 —— 如果你真的想看空白和行级变化(比的是代码文件而不是数据),请改用文本对比工具。

  • 对集合型数组没开"忽略数组顺序"。顺序不同的标签或角色列表会显示成一堆索引被改。顺序无意义时把这个选项打开,否则会去追根本不存在的"变化"。

  • 粘了 JSON5、注释或尾逗号。解析器只认严格 JSON。一个 `// 注释` 或尾逗号都会让那一侧非法,先用 JSON 格式化工具过一遍。

隐私说明

解析和树差异都是浏览器标签页里跑的纯 JavaScript —— 左侧和右侧的 JSON 都不上传、不记录、不分析。唯一要注意的是 URL 状态:左右输入会同步到 query string 方便你分享差异,这意味着"分享链接"会把你的数据带进对方 的浏览器历史以及沿途任何服务器访问日志。涉及 API 密钥、令牌或未发布的 数据时,请复制文本摘要,而不是分享 URL。

常见问题

类似工具组合

做你这行的人, 还会一起用这些。

Made by Toolora · 100% client-side · Updated 2026-05-29