悦省

JSON 格式化

粘贴 JSON,一键美化、压缩成一行,或校验语法错误位置。数据不会离开你的浏览器。


  
说明

使用浏览器原生 JSON.parse,错误信息会带出具体字符位置。大文件(数 MB)也能处理,但会占用较多内存。

什么时候用

  • 接口返回的 JSON 被压成一整行,需要展开看字段层级和嵌套关系时。
  • 提交前想确认有没有多余的逗号、缺引号的 key 或未转义的换行,需要让解析器指出出错位置时。

什么时候不用

  • 只想看某个字段的值:浏览器 devtools 的 Network → Response 里直接搜索字段名更快,不必把整段 JSON 复制出来。
  • JSON 有几十 MB 且只做一次机器处理:命令行 jq 更省内存,也不会把整段文本塞进文本框。
限制与隐私

格式化全部在浏览器本地完成,输入不会上传,也不会写进 URL 或日志。限制:用原生 JSON.parse,注释、单引号、尾逗号等非标准写法会直接报错;数字按双精度浮点数处理,超过 2^53−1 的整数会丢精度;超大文件占用内存较多,可能卡顿。

常见问题

大 JSON 文件会不会把页面卡死?

几百 KB 到几 MB 通常可以即时处理;文件越大,JSON.parse 和 JSON.stringify 同时留在内存里的副本越多,几十 MB 的文件在内存较小的设备上可能明显卡顿甚至失败。整个过程不上传,卡住只影响当前标签页,刷新即可恢复。

报错说 position 123,具体错在哪?

position 是浏览器 JSON.parse 报出的字符偏移,Chrome/Edge 里从 0 开始,通常还会给出行和列。它指向解析器停下的位置,不一定是真正的错误字符:漏逗号常在下一个 key 处报错,多余的尾逗号常在闭括号处报错,所以要从报错位置往前看几行。Safari、Firefox 的文案和位置可能略有不同。

很长的数字 ID 格式化后变了,能保留精度吗?

不能。JSON.parse 会把所有数字转成 IEEE-754 双精度浮点数,超过 2^53−1(9,007,199,254,740,991)的整数会丢精度,例如 1234567890123456789 会被格式化成 1234567890123456800。这是 JSON.parse 的限制,不是格式化造成的。订单号、雪花 ID 请在源头存成 JSON 字符串(给数字加引号),或改用支持 BigInt 的解析器;本工具不保留原始数字文本。