第 12 课
缩进、换行与可读排版
何时便于人类阅读、何时节省字节,以及团队排版约定。
JSON 不要求 token 之间有空格。缩进与换行是编辑选择——不改变解析结果,但影响人类阅读与 diff 工具的表现。
同一数据,两种外观
紧凑:
{"user":{"name":"Ada","roles":["admin","editor"]}}
缩进(2 空格):
{
"user": {
"name": "Ada",
"roles": ["admin", "editor"]
}
}
解析器视为等价;代码评审中后者更易读。
团队约定
常见标准:
- 2 空格 — 许多 Web / JS 项目默认
- 4 空格 — 部分企业规范
- Tab — JSON 中较少,因多数 linter 期望空格
仓库内统一宽度,并在 CI 用格式化检查 enforce。
何时保持紧凑
- 关注带宽的生产 HTTP 体
- 体积受限的嵌入式配置
- 纯机器链路、无人阅读
线上紧凑;日志或调试构建中可按需美化。
便于 diff 的排版
稳定键序 + 一致缩进,能在评审中清晰暴露变更。键序随机或空格混乱会产生噪声 diff,掩盖真实逻辑变化。
把排版当作 给人看的沟通方式,而非 JSON 数据模型的一部分。