togotools.top 技术参考
技术参考
在浏览器本地对比两段 JSON 文本,按结构化路径列出新增、删除和修改的字段,同时提供逐行文本差异对比视图,所有对比过程均不离开浏览器。
对比模式
- 结构模式:按 JSON 路径(如 a.b[0])列出每个差异的类型(新增/删除/修改)。
- 文本模式:按行展示差异,类似 git diff 的增减标记。
- 支持对象和数组的深层递归对比,不要求两边键顺序一致。
- 对比在浏览器本地完成,不上传任何输入数据。
示例:字段修改
结构模式按路径定位差异,不受格式化方式影响。文本模式对格式化风格敏感,建议先格式化两侧 JSON 再对比。
左侧:{"id":1,"name":"Ada","role":"admin"}
右侧:{"id":1,"name":"Ada","role":"editor","active":true}
差异:
role: admin -> editor
active: (新增) -> true使用边界
- 数值精度:JavaScript 使用 IEEE 754 双精度浮点,超大整数可能丢失精度。
- 相同值但不同类型(如 1 和 "1")会被视为差异。
- 数组顺序敏感:元素相同但顺序不同的数组会被标记为差异。
常见问题
能忽略某些字段不做对比吗?
当前版本不支持按路径忽略字段。可以先在文本编辑器中删除不需要对比的键,再粘贴进来对比。
为什么顺序不同的数组显示很多差异?
对比是按位置逐一比较的,不支持无序数组匹配。如果顺序无关紧要,可以先对数组排序再对比。