第 2 课
YAML 与 JSON 的区别
为配置与 API 选择合适的格式。
YAML 与 JSON 可以表达相同的数据模型,但面向的工作流不同。
可读性
YAML 在常见场景下去掉花括号与引号,大型配置更易浏览:
database:
host: localhost
port: 5432
等价的 JSON 合法,但对人工编辑来说往往更「吵」。
严格性
JSON 更严格,大规模不可信输入下解析更安全。因此许多 API 用 JSON,而 YAML 常见于 可信、人工维护 的配置仓库。
注释
YAML 支持 # 注释;标准 JSON 不支持。这在 CI 或 Helm 里解释非常规开关时很实用。
转换工作流
团队常见做法:
- 从 API 或生成器导出 JSON
- 转为 YAML 便于手工修改
- 再转回 JSON 给只接受 JSON 的工具
往返转换保留数据,但 键顺序、引号与注释可能变化。转换后务必看 diff。
何时优先 JSON
- 对外 HTTP API 与浏览器载荷
- 机器生成的日志与事件
- 必须拒绝模糊类型的流水线
何时优先 YAML
- 入库的 Kubernetes / Compose 文件
- 由开发者维护的 CI 工作流
- 需要注释与多行字符串的应用配置