第 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 工作流
  • 需要注释与多行字符串的应用配置

想动手练习时,可使用 DevCove 相关工具——可选,不属于本课正文。

打开相关工具

返回课程概览