简体中文
如何使用 JSON 格式化工具
这款 JSON 格式化工具在你粘贴的同时检查并美化 JSON,让你无需安装任何软件,就能阅读 API 响应、修复配置文件或整理测试数据。
- 把 JSON 粘贴到输入框中,或点击加载示例试一试。
- 选择缩进方式:2 个空格(JavaScript 项目常用)、4 个空格(Python 和 Java 常用)或Tab。
- 选择格式化得到易读的输出,或选择压缩得到最短的文本。
- 点击复制,或点击下载 .json 把结果保存为文件。
如果 JSON 有错误,输出框会显示错误信息,包括行号和列号,以及一小段摘录,并用插入符(^)标出确切位置。
常见 JSON 错误及修复方法
JSON 看起来像 JavaScript,但规则严格得多。大多数“JSON 无效”错误都由以下问题引起:
| 错误写法 | 正确写法 | 原因 |
|---|---|---|
| {'name': 'Ana'} | {"name": "Ana"} | 字符串和键名必须用双引号。 |
| {name: "Ana"} | {"name": "Ana"} | 键名必须加引号。 |
| [1, 2, 3,] | [1, 2, 3] | 最后一项后面不能有逗号。 |
| {"a": 1 "b": 2} | {"a": 1, "b": 2} | 各项之间用逗号分隔。 |
| {"n": 007} | {"n": 7} | 数字不能有前导零。 |
| {"ok": True} | {"ok": true} | true、false 和 null 必须小写。 |
| // comment | (删除) | 注释不属于 JSON。 |
当错误指向某一行时,真正的问题往往就在它前面。例如缺少逗号,解析器要读到下一个值时才会发现。
格式化工具的工作原理
工具按照 JSON 标准(RFC 8259)逐个字符读取你的文本,一边读一边生成格式化后的输出,遇到第一个违反规则的地方就停下。因为它从不把值转换成 JavaScript 数字,所以 64 位 ID 这类超大数字和很长的小数都会完全按原样保留,像 \u00e9 这样的转义序列也不会被改动。
输出下方的数字分别显示结果大小、所有对象中键的总数,以及最深的嵌套层级。深层嵌套对机器来说没问题,但可能说明数据结构比实际需要的更复杂。
格式化还是压缩?
- 格式化适合需要人来阅读数据的场景:调试、代码审查、文档、纳入版本控制的配置文件。
- 压缩适合只有机器读取的场景:请求体、存入数据库或环境变量的值,或提供给浏览器的文件。
下面是同一个对象的两种写法:
{
"id": 7,
"tags": [
"a",
"b"
]
}
在网络传输中,gzip 或 Brotli 压缩已经能很好地去除空白,所以压缩 JSON 主要是为了满足存储限制和请求大小,而不是提高下载速度。
隐私与限制
你的 JSON 只在浏览器标签页中处理,不会上传或记录。几 MB 的文件也能正常处理,不过在较慢的手机上,超大输入需要稍等片刻才能完成格式化。即便如此,在不必要时,也不要把正在使用的密码或私钥粘贴到任何网站上,包括本站。
常见问题
怎么在线格式化JSON?
把JSON粘贴到输入框,选择缩进(2空格、4空格或Tab),点击“格式化”。结果可以复制或下载。
为什么我的JSON无效?
最常见的原因是末尾多了逗号、用了单引号而不是双引号、漏了逗号或括号没有闭合。校验器会指出行号、列号和问题所在。
压缩JSON是什么意思?
去掉所有不必要的空格和换行,让文件更小。数据本身不会改变。
JSON允许注释或末尾逗号吗?
不允许。标准JSON不支持注释,也不能在最后一个元素后加逗号,必须删除才能通过校验。
我的JSON会被发送到服务器吗?
不会。格式化和校验都在浏览器中完成,数据不会离开你的设备。