JSON 工具

格式化、压缩、按键名排序与结构统计,语法错误精确定位到行列并给出人话解释,还能生成 TypeScript 接口;另一页按结构对比两份 JSON,忽略键顺序、每处差异带 JSONPath。全部在浏览器本地完成,数据不会上传。

关于 JSON 的几个常见坑

  • 不允许尾随逗号{"a":1,} 在 JavaScript 里合法,在 JSON 里不合法。
  • 必须用双引号:属性名和字符串都只能用 ",单引号不行。
  • 没有 undefined / NaN / Infinity:这些是 JavaScript 的值,JSON 里只能用 null
  • 数字有限制:不能有前导零(01),小数点两侧都要有数字 (.51. 都不合法)。
  • 大整数会丢精度:超过 2^53 的整数经 JSON.parse 后不再精确,需要的话让后端用字符串传。

对比口径

  • 对象按键比较,与书写顺序无关:{"a":1,"b":2} {"b":2,"a":1} 视为相同。
  • 数组按下标比较:在中间插入一个元素,会让它之后的元素全部报告为差异。需要按内容匹配的场景, 建议先按某个 id 排序再对比。
  • 区分类型变更2"2" 会被单独标为「类型变更」,这类问题在接口联调时最常见。
  • 文本模式使用 Myers 差分算法;超大输入会自动退化为公共前后缀裁剪以保证响应速度。