JSON 结构差异比较
按 JSON 结构定位变化并输出 JSON Pointer 路径,保留大整数精度,忽略对象键的排列顺序。
- 1添加输入
- 2调整设置
- 3获取结果
工具输入和文件在当前浏览器处理,不会上传。
开始之前
粘贴或导入原始与对照 JSON,按 JSON Pointer 查看新增、删除和修改,再复制或下载只有两个字段的完整报告。
如何使用
- 粘贴两份完整 JSON 值,或分别导入 UTF-8 文件。导入一侧时另一侧保持原有文本。
- 比较结构;按提示修正指定来源后重试,语法解析在 Worker 内执行。
- 检查有界表格和计数。复制或下载完整 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 保留来源拼写。数字按精确十进制值比较,因此只有数字拼写不同也可能相等。