DevToolsLab

JSON 比对

比对 · 高亮差异

在两侧粘贴 JSON 即可逐行对比,差异以颜色高亮标记。

+4 新增 · -3 删除 · =5 相同
原始 JSON有效
修改后 JSON有效

两侧输入完全在浏览器内处理,不会上传到任何服务器。

什么是 JSON 比对?

JSON 比对工具用于比较两份 JSON 文档,标出它们之间的差异:哪些属性是新增的、哪些被删除、哪些值发生了变化。DevFormatLab 的 JSON 比对采用按行对比,比较前会对对象键名排序(因此属性顺序不同不会被当作差异),全部计算都在浏览器内完成。它特别适合检查接口返回值的变更、配置漂移以及功能开关上线情况。

功能特性

  • 并排展示,行级红绿高亮
  • 可选按键名排序(忽略属性顺序差异)
  • 新增 / 删除 / 相同 行数实时统计
  • 两侧分别严格校验 JSON,分别报错
  • 一键交换左右
  • 100% 浏览器运行 —— JSON 数据不会离开你的设备

使用步骤

  1. 在左侧输入框粘贴原始 JSON。
  2. 在右侧输入框粘贴修改后的 JSON。
  3. 保持「按键名排序」开启(默认),可忽略属性顺序差异。
  4. 查看下方并排彩色对比:红色为删除行,绿色为新增行。
  5. 需要反向对比时点击「交换左右」。

常见问题

我的 JSON 数据会被上传吗?

不会。两侧 JSON 都在浏览器内解析与对比,不会上传到任何服务器。

为什么默认情况下重新排列键名不会显示为差异?

JSON 规范规定对象键名是无序的,DevFormatLab 在序列化对比前会对键名排序。如果你的场景需要严格区分键名顺序,可以关闭该选项(开发中)。

嵌套对象与数组如何对比?

两侧都会以 2 空格缩进美化输出,再使用 LCS 算法逐行对比。嵌套结构会展开为多行,差异定位非常清晰。

对比有大小限制吗?

对比复杂度为 O(n*m)(n、m 为两侧行数)。超大 JSON(每侧 > 5000 行)可能会有短暂卡顿。常规接口和配置基本秒出。

数组元素顺序变化会被识别为差异吗?

会的。JSON 中数组是有序的,元素顺序变化会被视为差异。如果你需要忽略数组顺序,请提前对数组进行排序。

相关工具

Canonical: https://devformatlab.com/zh/json-diff