JSON 格式化 / 压缩 / 校验
格式化、压缩、校验 JSON,出错时提示大致行号。大文件也在本地处理,不会卡服务器。
常见报错原因
- 尾随逗号:JSON 不允许
{"a":1,}这种写法。 - 单引号:字符串必须用双引号,
{'a':1}不合法。 - 未转义字符:字符串里的换行、反斜杠需要转义。
- 注释:标准 JSON 不支持
//或/* */注释。 - 从配置文件拷过来的内容常带注释或尾随逗号,先删掉再粘进来。
常见问题
- 格式化会改变我的数据吗?
不会。格式化只调整空白字符(缩进和换行),键值内容、类型、顺序都保持原样。压缩同理,只是去掉所有不必要的空白。可以放心对生产配置做格式化。 - 编辑器和接口返回的 JSON 不合法,但接口本身能跑?
很可能是服务端没按严格标准解析。部分语言的容错解析器(例如 Python 的json5、JavaScript 的JSON5或某些框架的宽松模式)允许注释和尾随逗号,而标准 JSON 解析器不允许。规范上永远是严格 JSON 更可靠,因为任何标准解析器都能读。 - 大文件会不会卡住浏览器?
本站是在你的本地浏览器里处理的,不经过服务器,所以不会占用别人的资源;但超大文件(超过几十 MB)确实会让浏览器标签页变慢,因为整个字符串都要先载入内存。这种场景建议用命令行工具,例如python -m json.tool 大文件.json,或者jq,它们对内存的处理更好。 - 为什么数字
1.0格式化后变成1,大整数精度还会丢?
因为 JSON 的数字类型不区分整数和浮点,而 JavaScript 内部只有一种Number类型(双精度浮点)。超出 2^53 的整数(如某些雪花算法 ID、20 位订单号)在 JS 里无法精确表示,会被就近取整。遇到这类数据,解析时应把大数字当字符串处理,或改用支持大整数的库。 - YAML 配置文件里的内容为什么报错?
YAML 是另一种格式,比 JSON 宽松得多(允许注释、允许缩进代替大括号、允许不加引号的键)。把 YAML 直接粘到 JSON 校验器里必然报错。需要先转换格式,或使用 YAML 专用工具检查。