m moji kit v1.0.9
変換 JSON → YAML

JSON を YAML に変換する

JSON を YAML(YAML Ain't Markup Language)に変換する方法です。Kubernetes / GitHub Actions / Ansible などで必要になります。

このページで変換する

Y
JSON ↔ YAML 変換
このページで直接使えます
ツールページで開く →

解説

JSON は YAML 1.2 のサブセットなので、ほぼすべての JSON はそのままでも YAML として有効です。可読性のため、インデントによるネスト表現に書き直し、配列はハイフン - で各要素を表す形式にするのが普通です。 気をつけたいのは、yes / no / on / off が YAML 1.1 で真偽値に解釈される点、01234 のような前ゼロ付き文字列が数値解釈されることがある点です。文字列として保持したい値はクォートで囲みます。

サンプル入力(JSON)

{
  "name": "my-app",
  "version": "1.0.0",
  "deps": {
    "react": "^18.0.0",
    "astro": "^5.0.0"
  },
  "tags": ["web", "frontend"]
}

サンプル出力(YAML)

name: my-app
version: 1.0.0
deps:
  react: ^18.0.0
  astro: ^5.0.0
tags:
  - web
  - frontend

使うときのコツ

  • · "true" / "false" / "yes" / "no" / "null" などの値はクォートで囲んで真偽値・null に誤変換されないようにする
  • · コメント(# ...)は JSON にないが YAML にはある。JSON → YAML 変換ではコメントは付与されない
  • · 数値文字列("01234" のような ZIP コード)は YAML が数値解釈する可能性があるためクォート必須

よくある質問

YAML 1.1 と 1.2 の違いは?
1.1 は yes/no/on/off も真偽値扱いし型変換が緩い、1.2 は JSON 互換性を優先して true/false のみ真偽値扱い。多くのツール(GitHub Actions など)は 1.2 系です。
JSON をそのまま YAML として貼っても動く?
はい。JSON は YAML 1.2 の有効なサブセットです。{ "a": 1 } をそのまま YAML として書いても解釈されます。可読性のためインデント形式に書き直すことが多いです。
YAML のフロースタイル([1, 2, 3])とブロックスタイル(- 1)はどう使い分ける?
短い配列・オブジェクトはフロースタイル、ネストが深い・長い場合はブロックスタイルが読みやすいです。プロジェクトの慣習に合わせます。
アンカー(&) とエイリアス(*)は変換時にどうなる?
JSON にはアンカー機能がないので、YAML → JSON 時は展開された値が出ます。JSON → YAML 時はアンカーは生成されません(必要なら手動で)。
Kubernetes の Deployment マニフェストに使えますか?
k8s は YAML / JSON どちらも受け付けますが、慣習で YAML が多用されます。コメントを書ける、テンプレート化しやすいなどの利点があります。
改行を含む長い文字列はどう書く?
YAML には | (改行を保持)と > (改行を空白に折り畳み)の構文があります。例: `desc: |\n line1\n line2`。

関連ツール

Y
JSON ↔ YAML 変換
JSON と YAML を双方向に変換します。自動判定とフロースタイル切替に対応。