JSON 格式化工具
美化并校验 JSON,输出干净的缩进格式。
如何使用 JSON 格式化工具
- 粘贴你的 JSON。
- 系统会立即进行校验并美化输出。
- 复制格式化后的结果。
关于 JSON 格式化工具
JSON 由 Douglas Crockford 制定规范,如今已由 ECMA 和 IETF 共同标准化。它借用了 JavaScript 的对象语法,但规则严格得多,而这种严格正是大多数人容易出错的地方。把数据粘贴到这里,它会被解析并重新按你选择的两个空格、四个空格或制表符缩进输出——如果无法解析,你得到的会是解析器本身给出的错误信息,而不是一片空白。
常见的出错原因值得了解。JSON不支持注释——这是 Crockford 有意为之的决定——也不允许末尾逗号,而这正是迄今为止最常见的解析错误。键名必须用双引号括起来,所以一个带裸键或单引号的 JavaScript 对象字面量并不是合法的 JSON。JSON 也没有日期类型,因此日期按惯例以字符串形式传递。
有一点需要留意:JSON 数字是按 IEEE-754 双精度浮点数解析的,所以超过 9,007,199,254,740,991 的整数在传递过程中会丢失精度——较大的 ID 更安全的做法是以字符串形式传递。由于这个工具是真正地解析并重新序列化,而不只是调整空白,重复的键会被悄悄合并为最后一个。所有处理都在你的浏览器中完成,所以一份包含真实客户数据的 API 响应不会离开你的设备。准备发布时,可以用JSON 压缩工具把它重新精简回去。
常见问题
为什么我的 JSON 里有注释就会解析失败?
因为 JSON 根本没有注释语法——这是有意省略的。任何类似 // 或 /* */ 的内容都是语法错误,不管有多少工具能容忍它。请去掉注释,或者如果确实需要注释,可以改用 JSON5 或 YAML 这类格式。
“Unexpected token”这类错误最常见的原因是什么?
通常是对象或数组最后一项之后多了一个逗号。JavaScript 允许这样写,但 JSON 不允许。其次常见的原因是使用了单引号字符串和未加引号的键名——这两者在 JavaScript 中都合法,在 JSON 中都不合法。
格式化会改变我的数据吗?
数值本身保持不变,但文本是重新生成的,而不只是重新缩进。所以数字字面量会以规范形式输出(1.50 会变成 1.5),如果一个对象里同一个键出现了两次,只有最后一个会保留下来——这是标准的解析器行为,不是本工具的缺陷。
为什么我的大整数 ID 返回后变成了另一个数字?
JSON 数字是按双精度浮点数解析的,只有在约9千万亿以内才是精确的。超过这个范围的64位 ID 会被四舍五入到最接近的可表示值。为避免这个问题,应在 API 中把这类 ID 以字符串形式加引号传递。
我的 JSON 会被上传到什么地方吗?
不会。解析和格式化都在你的浏览器中完成,所以你可以放心粘贴生产环境的响应数据或令牌内容——不会有任何数据被发送到服务器。

