Neatbo.

JSON 结构差异比较

按 JSON 结构定位变化并输出 JSON Pointer 路径,保留大整数精度,忽略对象键的排列顺序。

浏览器本地处理输入两份 JSON 文件或文本输出JSON 差异报告两份 UTF-8 JSON,每份最多 1 MiB
  1. 1添加输入
  2. 2调整设置
  3. 3获取结果

工具输入和文件在当前浏览器处理,不会上传。

输入内容

切换工具时在当前标签页临时保留输入。刷新或关闭后清除,较大的结果可能需要重新生成。

⌘ / Ctrl + Enter 运行

比较两份 JSON 文档

粘贴或导入两份完整 JSON。对象键顺序不影响结果,数组顺序有意义。

请粘贴或导入两份 JSON 后再比较。

正在准备处理工具…

开始之前

粘贴或导入原始与对照 JSON,按 JSON Pointer 查看新增、删除和修改,再复制或下载只有两个字段的完整报告。

如何使用

  1. 粘贴两份完整 JSON 值,或分别导入 UTF-8 文件。导入一侧时另一侧保持原有文本。
  2. 比较结构;按提示修正指定来源后重试,语法解析在 Worker 内执行。
  3. 检查有界表格和计数。复制或下载完整 JSON 报告,保留全部变化。

支持范围与限制

每侧接受最多 1 MiB 的粘贴或单个 UTF-8 文件导入,两侧均可同时达到上限。文件名最多 512 个 UTF-8 字节;导入只替换该侧可编辑文本。

每份文档最多 200000 个值,值深度最多 128,根值深度为 0。完整报告最多 20 MiB。

忽略对象键顺序;数组只比较同一索引,插入和移动可能产生多项变化。精确十进制值相同则视为相等:1、1.0、1e0 相等,-0 与 0 也相等。

拒绝解码后的重复键、注释、尾逗号和非 Unicode 标量字符串。解析时可忽略一个开头 BOM;编辑前,原 BOM 和 CR/LF 仍属于有效来源身份。

预览最多 200 行,每条路径最多 512 个 Unicode 字符,每个值最多 160 个字符。复制和下载保留所有完整路径、紧凑值及数字原文。

新增或删除的子树作为一项完整变化。报告仅含 equal 与 changes,来源信息单独展示。浏览器 Worker 期限为 10 秒;失败不会产生新的部分结果。

操作示例

示例输入

{"user":{"id":9007199254740993,"active":false}}

对照 JSON:
{"user":{"id":9007199254740993,"active":true}}
示例参数
{}

示例输出

{
  "equal": false,
  "changes": [
    {
      "path": "/user/active",
      "kind": "changed",
      "before": "false",
      "after": "true"
    }
  ]
}

出现问题时

修正指定来源的语法、重复键或 Unicode;超出预算时减少该侧输入或报告扩张。取消或超时会终止 Worker,重试创建新 Worker,并保留两侧可编辑来源文本。

常见问题

只改变对象键的顺序,会算作变化吗?

不会。对象键顺序不影响结果;数组顺序有意义,变化按索引报告。

页面示例应该得到什么结果?

仅 /user/active 应变化;两侧标识符均应保持 9007199254740993。

哪些情况不适用?

数组按索引比较,不做序列对齐或集合匹配。新增或删除的嵌套容器以完整子树报告一次。报告描述变化,不执行补丁或合并。

before 和 after 字段是什么?

它们是包含对应来源中完整紧凑 JSON 值的字符串,内部数字 token 保留来源拼写。数字按精确十进制值比较,因此只有数字拼写不同也可能相等。

文档与延伸阅读

相关工具