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
- YAML ↔ JSON ツール を開く
- YAML または JSON を貼り付け
- 自動変換・フォーマット
- 結果をコピー
TOML ↔ JSON
- TOML ↔ JSON ツール を開く
- TOML または JSON を貼り付け
- 自動変換
構文の違い
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↔JSON、TOML↔JSON、JSONフォーマット を提供。ブラウザ内ローカル処理、即時変換、無料で利用できます。
#YAML#JSON#TOML#配置文件#DevOps