SmartConvert logoSmartConvert

JSON 对比与差异

在线对比两个 JSON,定位新增、删除与修改的值,本地运行不上传。

在浏览器本地运行,文件不上传。

JSON 对比:在线比较两个 JSON 差异

肉眼对比两个 JSON 又慢又不可靠:一个改动可能藏在几千行嵌套里,翻半天还容易漏。这个工具把过程机械化——左边贴原始版本,右边贴修改版本,它逐项列出所有差异并标出精确位置,接口变更、配置更新、测试数据,几秒钟就能审完。

关键区别是语义对比和纯文本 diff 不同。文本 diff 会把调换的键顺序、空格换行全标成差异,真改动反而淹没在噪音里。这个工具先把两边解析成数据结构再比较,{"name":"Alice"} 和换行缩进后的同一个对象会被判定为完全相同。属性顺序永远不算差异,只有值、类型或结构的真实变化才会被列出来。

每条差异归为三类。新增指右边有、左边没有的值,比如多出的 user.email;删除指左边有、右边没了的值,比如删掉的 user.phone;修改指路径相同但值或类型不同,比如 user.name 从 "Alice" 变成 "Bob",或数量从数字 1 变成字符串 "1"。

嵌套对象支持任意深度,变化都带上完整路径上报,比如 user.profile.name、settings.theme。数组按下标逐项比较,顺序敏感:[1, 2, 3] 和 [3, 2, 1] 算不同,因为 JSON 里元素顺序通常有意义;某项变化会带下标报出,如 items[1].name,一边多出的元素按下标记为新增或删除。

对比前想先整理格式,可以用站内的JSON 格式化与校验把两边分别美化、校验或压缩。接口返回里的 Token 与编码载荷,可以用 JWT 解码或 Base64 编码与解码先拆开再看。

和要求上传敏感数据的在线服务不同,这个对比完全在浏览器本地运行:粘贴或拖入两个 .json 文件,解析与求差都在本机完成,不经过任何服务器,关掉标签页什么都不剩。

使用方法

  1. 粘贴原始 JSON — 放到左侧面板,也可以直接把 .json 文件拖进来,附带格式化与清空按钮。
  2. 粘贴修改后的 JSON — 右侧同样操作。
  3. 点击「Compare JSON」 — 解析两边并计算语义差异。
  4. 查看汇总 — 总数加新增 / 删除 / 修改 breakdown,可按类型筛选。
  5. 一键复制路径 — 拿着路径回编辑器直接定位。

功能特点

  • 语义对比 — 键顺序与空白永远不算差异。
  • 精确定位 — 每条变化都有路径,从 user.name 到 items[2].id。
  • 三类划分 — 新增 / 删除 / 修改分开,review 更快。
  • 完全私密 — 本地解析本地对比,不上传任何数据。
  • 文件友好 — 两边都支持拖入 .json 文件,无需注册。
  • 永久免费 — 无账号、无次数限制、无水印。

非法输入不会产生误导性结果:哪一边解析失败,就会指出是哪一边、具体哪行哪列,对比会等到两边都合法才执行。

常见问题

把两个 JSON 并排比较,精确列出哪些值新增了、哪些删除了、哪些被改了。和纯文本 diff 不同,它理解 JSON 数据结构,能直接定位到 user.name 或 items[1].id 这种具体位置。

不算。对象属性顺序与空格、换行都不影响结果,{"a":1,"b":2} 和 {"b":2,"a":1} 会判定为完全相同。只有值、类型或结构真正变化才会被列出来。

可以,任意深度都支持。嵌套里的变化会带上完整路径,比如 user.profile.name,一键复制路径就能回编辑器里定位。

按下标逐项比较,顺序敏感:[1,2] 和 [2,1] 算不同。某项变化会报出 items[1].name 这样的下标路径,一边多出来的元素记为新增或删除。

会。数字 1 和字符串 "1"、true 和 "true" 都是不同值,会被标为修改。数字按数值比较,1 和 1.0 视为同一个 JSON 值。

不会。解析与对比全部在浏览器本地完成,接口返回、业务数据不会发送到任何服务器,可放心粘贴真实报文调试。