YAML/JSON設定ファイル相互変換ガイド:DevOpsと開発の必須スキル

JSON(更新: 2026年5月26日)

YAML vs JSON:なぜ相互変換が必要か

シーン よく使う形式 理由
Docker Compose YAML 人間が読みやすい、コメント対応
Kubernetes YAML 公式推奨
GitHub Actions YAML ワークフロー定義
APIリクエスト/レスポンス JSON 機械解析
package.json JSON Node.js標準
tsconfig.json JSON TypeScript標準
Cargo.toml TOML Rust標準

開発者は YAML(設定ファイル)と JSON(API/プログラム)の間を頻繁に変換する必要があります。


ToolsKuで相互変換

YAML ↔ JSON

  1. YAML ↔ JSON ツール を開く
  2. YAML または JSON を貼り付け
  3. 自動変換・フォーマット
  4. 結果をコピー

TOML ↔ JSON

  1. TOML ↔ JSON ツール を開く
  2. TOML または JSON を貼り付け
  3. 自動変換

構文の違い

YAMLの特性(JSON非対応)

# コメント — JSONでは不可
name: toolsku
version: 1.0
port: 3000          # 数値に引用符不要
tags:               # 配列
  - pdf
  - image
database:
  host: localhost   # ネストオブジェクト
  port: 5432
enabled: true       # 真偽値
empty: null         # null
multiline: |        # 複数行文字列
  1行目
  2行目

同等の JSON:

{
  "name": "toolsku",
  "version": "1.0",
  "port": 3000,
  "tags": ["pdf", "image"],
  "database": { "host": "localhost", "port": 5432 },
  "enabled": true,
  "empty": null,
  "multiline": "1行目\n2行目"
}

よくある落とし穴

1. YAMLの暗黙的型変換

# ⚠️ 危険:YAML 1.1 では以下が真偽値/nullに解釈される
country: NO    # → false(ノルウェーの国コードが誤解!)
version: 1.0   # → 1.0 (float)
date: 2024-01-01  # → 日付として解釈される可能性

対策:誤解されうる値は引用符で囲む "NO""1.0"

2. インデントはスペースのみ

# ❌ Tabとスペースの混在
name: test
	tags: [a, b]  # Tabインデント → パースエラー

# ✅ 2スペースで統一
name: test
  tags: [a, b]

3. JSONはコメント非対応

// ❌ JSONにコメントは書けない
{ "name": "test" /* コメント */ }

コメントが必要なら YAML を使うか、JSONフォーマットツール の JSON5 モードを使用。


実践シーン

Docker Compose → JSON(プログラム読み取り)

# docker-compose.yml
services:
  web:
    image: nginx:latest
    ports: ["8080:80"]

→ Node.js プログラムが設定を解析するために JSON に変換

Kubernetes YAML のデバッグ

# K8s YAML を JSON に変換して jq でクエリ
kubectl get pod my-pod -o json | jq '.status.phase'

JSONPathツール でも JSON から直接フィールドを抽出できます。

CI/CD 設定の検証

YAML を JSON に変換後、JSONフォーマットツール で構文が正しいか確認。


まとめ

YAML/JSON/TOML の相互変換は DevOps とフルスタック開発の日常作業です。ToolsKu は YAML↔JSONTOML↔JSONJSONフォーマット を提供。ブラウザ内ローカル処理、即時変換、無料で利用できます。

#YAML#JSON#TOML#配置文件#DevOps