YAML と JSON の違い — 設定ファイルで選ぶべきは
YAML は人間可読・コメント可・省記号だが曖昧な挙動もある。JSON は機械可読・曖昧性が少ない。設定は YAML、API は JSON が現実的な選択肢。
結論
- 人が書く設定ファイル → YAML
- プログラム間のデータ交換 / API → JSON
- 構成管理(k8s, GitHub Actions など) → YAML が主流
比較表
| 項目 | YAML | JSON |
|---|---|---|
| コメント | # で可 |
不可(JSONC は可) |
| 可読性 | 高い | 中 |
| 曖昧さ | 1.1 は多い(yes / no 等) |
少ない |
| アンカー参照 | 可 | 不可 |
| パースの厳密さ | 実装依存 | 厳密 |
実運用の注意
- YAML では
yaml.safe_loadを徹底。loadは任意オブジェクト生成を許す。 - JSON は末尾カンマ不可。
jqや Prettier でフォーマット統一を。 - CI 設定は YAML の勝利、gRPC や OpenAPI ランタイムのやり取りは JSON の勝利。