YAML と JSON: どの設定形式を選び、どう安全に変換するか
2025-05-20
YAML 1.2 は JSON 互換を目標としており、妥当な JSON は YAML としても解釈可能です。運用設定は YAML、アプリ間交換は JSON が多く、変換時には型と構文の落とし穴に注意が必要です。
主な違い
JSON はコメントなし、キーはダブルクォート、形が厳密。YAML はインデント、# コメント、柔軟なスカラー表現が特徴です。
{ "server": { "port": 8080 } }server:
port: 8080設定ファイルにはどちらを使うべきか
手編集する運用設定(K8s、Docker、CI)は YAML、機械生成マニフェストやアプリ間交換は JSON が向いています。
変換時の落とし穴
yes/no が真偽値化される、バージョン文字列が数値化される、JSON にはアンカーがない、YAML のタブは無効などに注意します。
CLI 変換
yq、js-yaml、PyYAML を使い、変換後は必ず JSON.parse でチェックしてサイレントな型変化を検出します。
Kubernetes 実務のヒント
リポジトリでは YAML を維持し、JSON 専用コンシューマー向けに CI で変換する運用が扱いやすいです。巨大 JSON マニフェストの手書きは避けます。
まとめ
人が読むなら YAML、機械処理なら JSON。ツールのバージョン固定と変換後の検証を徹底しましょう。