JSON格式化

在线JSON格式化、JSON校验、JSON美化工具

关于JSON格式化

接口返回的一行压缩 JSON、手改坏了的 config.json,直接读都很难受:嵌套层级看不出来,少一个逗号整段打不开。这个工具用 JSON.parse 做一次真正的语法校验,解析失败时按行给出错误信息,通过后再按指定缩进(2 空格、4 空格或 Tab)重新序列化输出,并可开启键名排序、中文原样显示。排查对接问题时尤其有用:先把报文格式化,才能看清字段名到底叫什么、类型是字符串还是数字——大量“字段取不到值”的 bug 就出在 string 与 number 混用上。全过程在浏览器本地完成。

JSON格式化怎么用

  1. 把待处理的 JSON 粘贴进输入框,压缩成一行的原文可以直接粘,不必先手动换行。
  2. 查看校验结果:合法则显示有效提示,非法则显示错误信息与出错位置,先按提示修掉语法错误。
  3. 选择缩进风格,2 空格适合 JS/TS 与大多数前端项目,4 空格适合 Java 与部分服务端配置。
  4. 需要与另一份 JSON 逐字段对比时开启键名排序,让同层级字段按字母序对齐后排在一起。
  5. 把输出框的内容复制回编辑器或项目文件,提交前用本地编辑器再确认一次缩进与编码。

使用提示

  • RFC 8259 不允许尾随逗号、注释和单引号,从 JS 对象字面量里直接拷过来的代码几乎都会踩这三点,粘贴前先清理。
  • JavaScript 的 Number 是双精度浮点,超过 2 的 53 次方的雪花 ID 格式化后会丢精度,这类字段在原始报文里应当保持字符串形式。
  • 几十 MB 的 JSON 在浏览器里格式化会占用大量内存甚至卡死标签页,超大文件先用 jq 或命令行工具切分,页面只处理几 MB 以内的内容。

JSON格式化常见问题

JSON 校验提示 unexpected token 是什么意思?
表示解析到该位置时遇到了不符合语法的字符,最常见的原因是尾随逗号、单引号字符串、键名没加引号,以及从文档里复制来的中文全角引号。错误信息里的行列号指向原文位置,照那一行删掉多余字符即可。
JSON 格式化和 JSON 压缩有什么区别?
格式化只改变空白符与缩进,让结构可读,字节数基本不变;压缩会删掉全部非语义空白,用来减小传输体积。两者都不改动键值内容,除了开启排序之外也不会调整字段顺序。
JSON 里的中文为什么显示成 \u4e2d 这样的转义?
那是序列化时开启了 ASCII 转义,属于合法写法但不利于阅读,某些老接口会这么输出。本工具输出时保留原字符、中文直接显示;反过来如果需要提交转义形式,把 \u 转义的结果单独生成一份即可。
格式化后 JSON 的字段顺序变了怎么办?
JSON 规范里对象是无序的键值集合,多数解析器按写入顺序读取。如果输出顺序和原文不同,通常是你开了键名排序;对接方若依赖顺序(少数签名算法会),关掉排序再核对原始报文。