结构化 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. 输入
把内容粘贴或拖入工具面板。
-
2. 处理
点击按钮,在浏览器内本地处理,文件不上传。
-
3. 复制 / 下载
一键复制结果或下载到本地。
JSON 差异对比 适合怎么用
适合穿插在写代码、查问题、做 Review、上线前的小任务里。
适合开发场景
- 格式化、校验、压缩或检查和代码相关的文本。
- 把片段整理好再放进文档、工单、提交或交接材料。
- 不切换工具,快速检查一个小 payload。
开发检查项
- 压缩、混淆这类不可逆处理,先对副本操作。
- 除非确认工具本地处理,不要粘贴密钥和敏感片段。
- 转换后的代码上线前,仍要跑自己的测试或 lint。
下一步可以接着做
这些入口会把当前任务接到更完整的工具链里。
真实使用场景
合并前审查 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。
常见问题
类似工具组合
做你这行的人, 还会一起用这些。