JSON 工具
格式化、压缩、按键名排序与结构统计,语法错误精确定位到行列并给出人话解释,还能生成 TypeScript 接口;另一页按结构对比两份 JSON,忽略键顺序、每处差异带 JSONPath。全部在浏览器本地完成,数据不会上传。
关于 JSON 的几个常见坑
- 不允许尾随逗号:
{"a":1,}在 JavaScript 里合法,在 JSON 里不合法。 - 必须用双引号:属性名和字符串都只能用
",单引号不行。 - 没有 undefined / NaN / Infinity:这些是 JavaScript 的值,JSON 里只能用
null。 - 数字有限制:不能有前导零(
01),小数点两侧都要有数字 (.5和1.都不合法)。 - 大整数会丢精度:超过 2^53 的整数经
JSON.parse后不再精确,需要的话让后端用字符串传。
对比口径
- 对象按键比较,与书写顺序无关:
{"a":1,"b":2}和{"b":2,"a":1}视为相同。 - 数组按下标比较:在中间插入一个元素,会让它之后的元素全部报告为差异。需要按内容匹配的场景, 建议先按某个 id 排序再对比。
- 区分类型变更:
2与"2"会被单独标为「类型变更」,这类问题在接口联调时最常见。 - 文本模式使用 Myers 差分算法;超大输入会自动退化为公共前后缀裁剪以保证响应速度。