
什么是 JSON 格式化?
JSON 格式化将压缩或结构混乱的 JSON 转换为具有适当缩进、换行和一致间距的人类可读形式。虽然计算机对紧凑或格式化的 JSON 处理效果相同,但人类发现缩进的 JSON 更容易阅读和理解。

为什么 JSON 需要格式化
来自 API、数据库查询和日志文件的 JSON 通常以压缩或格式不一致的形式出现:
压缩(机器可读,对人类困难):
{"user":{"id":1,"name":"Alice","roles":["admin","editor"],"settings":{"theme":"dark","notifications":true}}}
格式化(人类可读):
{
"user": {
"id": 1,
"name": "Alice",
"roles": [
"admin",
"editor"
],
"settings": {
"theme": "dark",
"notifications": true
}
}
}
JSON 格式化选项
缩进
- 2 个空格:Web 项目中最常见(许多格式化工具的默认值)
- 4 个空格:Python 和一些风格指南中常见
- 制表符:物理宽度一致,但在不同编辑器中渲染效果不同
键排序
按字母顺序对对象键排序使大型 JSON 对象更易于导航,并在版本控制中产生稳定的差异。

数组格式化
数组可以每行一个项目(更好的可读性)或紧凑(适用于短数组)进行格式化。智能格式化工具根据数组内容和长度应用不同的规则。
JSON 验证
格式化工具也会验证 JSON 语法。常见的 JSON 错误:
- 尾随逗号:JSON 不允许在最后一个数组/对象元素后加逗号(与 JavaScript 不同)
- 未加引号的键:JSON 要求键用双引号括起来
- 单引号:JSON 只使用双引号,不使用单引号
- 注释:标准 JSON 不支持注释(JSON5 和 JSONC 支持)
- Undefined/NaN/Infinity:这些 JavaScript 值不是有效的 JSON
不同上下文中的 JSON
配置文件
大多数配置文件(package.json、tsconfig.json、.eslintrc.json)按惯例使用 2 空格缩进。对这些文件进行版本控制时,一致的格式化有助于产生可读的差异。

API 响应
API 通常通过 HTTP 提供压缩的 JSON。开发者工具(浏览器开发者工具、Postman、Insomnia)会进行格式化以便显示。
日志
结构化 JSON 日志记录产生压缩输出。日志分析工具如 Kibana、Splunk 和 Datadog 解析原始 JSON 并格式化显示。
数据库存储
PostgreSQL 的 JSONB 类型在内部以二进制形式存储 JSON。json_pretty() 函数在查询时将其格式化以便显示。
JSON Schema
JSON Schema 是一种用于注释和验证 JSON 文档的词汇表:
{
"$schema": "http://json-schema.org/draft-07/schema",
"type": "object",
"required": ["name", "email"],
"properties": {
"name": {"type": "string", "minLength": 1},
"email": {"type": "string", "format": "email"},
"age": {"type": "integer", "minimum": 0}
}
}
验证器根据 schema 检查 JSON 数据,在结构或类型错误到达应用程序代码之前捕获它们。
使用 JSON 格式化工具
我们的工具:
- 粘贴 JSON 数据 — 接受压缩、部分格式化或格式错误的输入
- 即时格式化 — 应用一致的缩进和换行
- 语法验证 — 报告错误并附带行号,便于修复
- 排序键 — 可选地对对象属性按字母顺序排序
- 多种缩进选项 — 2 个空格、4 个空格或制表符
- 压缩切换 — 在格式化和压缩视图之间切换
- 复制格式化后的 JSON — 一键复制到剪贴板
使用它来阅读 API 响应、调试 JSON 数据、格式化配置文件以及在应用程序中使用之前验证 JSON 语法。