FileHint

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 の勝利。

関連

出典