第 15 课
JSON 在现代技术栈中的位置
优势、局限,以及何时应考虑其他格式。
JSON 流行,是因为 简单、基于文本、且与主流语言的对象模型映射自然。并非所有场景都最适合——理解权衡才能 deliberate 地选型。
JSON 擅长的场景
- HTTP API,面向 JS、移动端与服务端
- 启动时加载的配置(
tsconfig、CI 矩阵等) - 事件流,每条消息是独立记录
- 互操作,无法向各方分发同一二进制 schema 时
容易踩坑之处
| 局限 | 实际影响 |
|---|---|
| 无注释 | 字段说明放文档,或仅在本地用 JSONC |
| 无原生日期/高精度小数 | 用约定字符串表示 |
| 相对二进制更冗长 | 带宽高于 Protobuf、MessagePack |
| Schema 非强制 | 生产方与消费方易漂移 |
这些不否定 JSON——而是说明需要 schema、测试与文档等 额外纪律。
格式谱系中的邻居
- XML — 文档型与遗留企业系统仍常见
- YAML — 人工维护的配置;注意缩进与不可信输入的安全
- CSV/TSV — 扁平表格,非嵌套图
- Protobuf / Avro — 可信网络内的紧凑二进制 + 强 schema
许多团队在对外 API 用 JSON,对内用二进制格式。
理性采用 JSON
统一 UTF-8,尽量公开 schema 或 OpenAPI,Breaking change 要显式版本化。JSON 的「通用」既是 技术特性,也是 行业共识——本课程的知识让你在这种共识里工作,而不是把格式当黑盒。