JSONとYAMLの違い - どちらを使うべきか

公開: 2026-05-13 / カテゴリ: 開発全般 / 読了 7分

JSON と YAML はどちらも「人間が読み書きできる構造化データ」を扱う形式ですが、向き不向きが明確に分かれます。本記事では使い分けの指針と、相互変換時のハマりどころを整理します。

1. 結論:用途別の使い分け

用途推奨理由
Web API / fetch のレスポンスJSONブラウザとほぼ全言語で標準サポート
機械間連携・データ保存JSONパーサが速く、誤解釈が少ない
K8s / GitHub Actions / Docker Compose 等の設定YAMLコメントが書ける、人間が編集しやすい
長文・複数行を含む設定YAML複数行リテラルが扱いやすい
言語をまたぐ設定共有JSONYAMLの解釈差で事故るリスク

2. 同じデータを比較

JSON

{
  "name": "TN LABO",
  "tools": ["ssl", "dns"],
  "options": { "ttl": 60, "active": true }
}

YAML

name: TN LABO
tools:
  - ssl
  - dns
options:
  ttl: 60
  active: true

3. JSON の特徴

4. YAML の特徴

5. YAML の落とし穴

The Norway Problem (no → false 問題)

countries:
  - NO        # ノルウェーのつもりが…
  - SE
  - DK
# YAML 1.1 では NO が boolean false に解釈される

対策: 文字列は明示的に引用符で囲む。"NO", 'NO'

誤解されやすい値

確実なのは YAML 1.2 準拠のパーサを使う ことと、文字列は引用符で囲む こと。

6. 相互変換のコツ

YAML → JSON はおおむね無損失。逆の JSON → YAML はコメントを生成できないので、人間用にする場合は手で追加します。

JSON⇔YAML変換ツール ならブラウザ上で即変換できます(データはサーバに送信されません)。

7. パフォーマンス

結論

「人が編集する設定ファイルは YAML、機械が扱うデータは JSON」と覚えておけば、9割の場面でハズレません。


関連ツール: JSON整形 / JSON⇔YAML変換 / テキスト差分