JSON → YAML 変換

無料オンライン JSON→YAML 変換ツール。JSONをワンクリックでYAML 1.2標準設定に変換。インデント幅のカスタマイズ、JSON構文エラーの自動修復、Kubernetesマニフェスト・Docker Compose・GitHub ActionsなどのYAML設定ファイルを生成。すべての処理はブラウザローカルで実行。

関連おすすめ

YAMLとは?なぜJSONをYAMLに変換するのか?

YAML(YAML Ain't Markup Language)は人間に優しいデータシリアライズ形式で、設定ファイルを読みやすく書きやすくするために設計されました。YAML 1.2が現在の安定バージョンで、Clark Evansにより2001年に提案され、現在ではKubernetes、Docker Compose、GitHub Actions、Ansible、CircleCI、Prometheusなど、ほぼすべての主要DevOpsツールの設定に広く使用されています。YAMLの設計哲学は可読性を簡潔さより優先し、インデント+コメント構造を採用しています。

JSONとYAMLはスーパーセット関係にあり(JSONはYAMLのサブセット)、変換は技術的には単純な構文再フォーマットですが実用的に大きな意味があります:①可読性向上 - YAMLは中括弧とカンマの代わりにインデントを使用、キーワードのクォートも省略可能。②コメントサポート - YAMLは#コメントをサポート。③複数文書サポート - YAMLは---区切りで単一ファイル複数文書をサポート。④型自動認識 - YAMLはクォートなしでも数字・ブール・nullを認識可能。

YAMLの3つの基本データ構造:①スカラー - 単一値。②シーケンス - JSON配列相当、- 開始で表現。③マッピング - JSONオブジェクト相当、key: value で表現。さらにアンカー(&anchor)と参照(*anchor)、ブロックスタイル(| 改行保持)と折りたたみスタイル(> 改行をスペースに)などの高度な構造もサポート。

JSON→YAML変換の一般的な動機:①Kubernetesデプロイが必要だが既存設定がJSON形式。②チームがYAMLで全設定ファイル統一管理に決定。③サードパーティAPI連携時にYAML形式リクエストボディ(OpenAPI、Swagger)が必要。④APIゲートウェイやCI/CDプラットフォームからエクスポートされたJSON設定を人間可読YAMLに変換。⑤モックデータをJSONからYAMLに変換しテストフィクスチャ作成。

変換プロセスは本質的にデータ構造の再マッピング:JSON.parse() がテキストをJavaScriptオブジェクト(AST)に解析し、js-yamlのdump()関数が各ノードを再帰的に走査。文字列・数字・ブール・nullは直接出力、配列は - リストに、ネストオブジェクトはインデント階層に変換。全プロセス純粋ローカル実行、変換結果は100%標準YAMLパーサー互換。

ユースケース

  • Kubernetesマニフェスト作成:HelmテンプレートやCI/CDツールが生成したJSON設定を標準Deployment/Service YAMLに変換
  • Docker Compose設定:docker-compose.jsonツールやコンテナ化プラットフォームからエクスポートされたJSONを可読なdocker-compose.ymlに変換
  • GitHub Actions / GitLab CIワークフロー:自動化スクリプトが生成したJSON設定をYAMLパイプラインファイルに変換
  • Ansible Playbook作成:タスクオーケストレーションJSONをAnsibleが想定するYAML形式に変換
  • マイクロサービス設定統一:分散したマイクロサービスのJSON設定をYAMLリポジトリに統合移行
  • Swagger/OpenAPIからのYAML生成:APIツールがエクスポートしたJSON SchemaをOpenAPI標準YAML仕様に変換
  • YAML文法学習:手元のJSON構造でネストオブジェクト・配列・特殊値がYAMLでどう表現されるか直感的に確認
  • 設定ファイル比較変換:JSONとYAML間で素早く変換し形式比較、プロジェクトに最適な設定言語を選択

使い方

  1. 左側エディタにJSON内容を貼り付け、またはアップロードボタンで .json/.txt ファイル選択、「サンプル」でプリセットサンプル読み込み
  2. ツールがYAML 1.2仕様に従い自動リアルタイム変換、右側に即時結果表示。ドロップダウンで2/4スペースインデント切替可能
  3. JSONに構文エラーがある場合、下部に「JSON修復」ボタン表示、クリックで自動一括修正
  4. Unicodeエスケープや文字列エスケープが必要な場合、下部ツールバーの「中文↔Unicode」「エスケープ/アンエスケープ」ボタンでワンクリック変換
  5. 結果に満足したら「コピー」ボタンでYAML内容をコピー、または「ダウンロード」で output.yaml ファイルとして保存

特徴

  • YAML 1.2 標準出力:公式 YAML 1.2 仕様に準拠し、Kubernetes、Docker Compose、GitHub Actions、Ansible など主要ツールで直接使用可能
  • インデント幅カスタマイズ:2スペース/4スペース切替可能、プロジェクトのコーディングスタイルに対応(YAML 公式は2スペース推奨)
  • JSON自動修復:内蔵 tryFixJSON エンジンが末尾カンマ・シングルクォート・コメントなどの一般的なJSONエラーを自動検出・修復後に変換
  • Unicode双方向変換:ワンクリックで中文→\uXXXXエスケープ、または逆変換、国際化シーンに対応
  • 文字列エスケープ/アンエスケープ:JSON内のダブルクォート・バックスラッシュ・改行にエスケープ追加または復元
  • JSON整形と圧縮:入力エリアでJSONをインデント整形または単一行圧縮に変換可能
  • リアルタイム双方向編集:左側にJSON貼り付けで右側に即時YAML結果表示、入力と同時に変換
  • ファイルアップロード・ダウンロード:.json/.txtファイルアップロード、config.yaml/output.yamlとしてワンクリックダウンロード
  • キーボードショートカット対応:Shift+Cmd/Ctrl+F 整形、C 圧縮、U Unicode変換、Z 逆変換、/ エスケープ、. アンエスケープ、O アップロード、D ダウンロード、K クリア
  • ドラッグ可能パネルと履歴:PC版の左右パネルはドラッグ幅調整可能、最近200件の履歴を自動保存
  • JSON整形ツールへ遷移:変換完了後、ワンクリックでJSON整形ツールに遷移し整形・検証・圧縮を続行可能
  • 純フロントエンドローカル処理:すべての解析・変換・エスケープはブラウザのJavaScriptで実行、機密設定はサーバーにアップロードされない

よくある質問

JSONをYAML形式に変換するには?

JSON内容を左側エディタに貼り付けると、ツールがYAML 1.2仕様に従って自動的に可読形式に変換します。キー値ペアは key: value に、ネストオブジェクトはインデントで階層表現、配列は `- item` リスト構文に。変換完了後ワンクリックでコピーまたは.yamlファイルとしてダウンロード。JSONに構文エラーがある場合はツールが自動修復を試みた後に変換します。

YAMLとJSONはそれぞれどのようなシーンに適する?

YAMLは人間可読な設定シーン(Kubernetesマニフェスト、Docker Compose、GitHub Actions、Ansible Playbook、CI/CDパイプライン設定)に適します。JSONは機械解析・データ交換シーン(REST APIリクエスト/レスポンス、マイクロサービス間通信)に適します。設定記述にはYAML、データ伝送にはJSONです。本ツールは逆方向 YAML→JSON 変換もサポート。

インデントは2スペースと4スペースどちらが良い?

YAML公式は2スペースインデント推奨(Pythonスタイルと一致)。Kubernetes、Docker Compose、GitHub Actionsなど主要ツールのデフォルトスタイル。一部プロジェクトでは4スペース使用。本ツールは2/4スペース自由切替、再変換不要で即時変更可能。

生成YAMLはKubernetesで直接使用可能?

可能です。YAML 1.2公式仕様に準拠し、Kubernetes YAMLパーサー(kubectl apply)の構文要件を満たします。deployment.yaml/service.yamlとして保存し kubectl apply -f で適用可能。YAMLはインデントに敏感なため、コピー時に余分なスペースやTabを使用しないでください。

複数文書YAML(---区切り)生成に対応?

現在のバージョンは主に単一文書の JSON→YAML 変換用。JSONが複数の独立オブジェクトの配列の場合、リスト形式で出力。複数文書YAML(---区切り)が必要な場合、変換後に手動で --- 区切り文字を追加するか、YAML整形ツールでさらに処理してください。

中文/特殊文字が含まれるJSONは文字化けしない?

文字化けしません。UTF-8エンコーディング完全対応、中文・日本語・韓国語・絵文字・特殊記号など全Unicode文字対応。中文を \uXXXX エスケープに変換する必要がある場合は「中文→Unicode」ボタンでワンクリック。逆方向復元は「Unicode→中文」を使用。

JSON文字列内のダブルクォートと改行はどのように処理?

YAMLは複数の文字列表現方法をサポート:クォートなし(単純文字列)、ダブルクォート囲み(\n・\tエスケープ対応)、シングルクォート囲み(リテラル)、| ブロックスタイル(改行保持)、> 折りたたみスタイル(改行→スペース)。本ツールはデフォルトでダブルクォートスタイル出力。JSON文字列に改行が含まれる場合、YAMLは自動的に \n エスケープ。

変換後、すべての値が文字列になる?

デフォルトではツールがJSONの元の型をインテリジェントに認識・保持。数字はYAML数字(クォートなし)、ブール値は true/false、null は null または ~ に変換。すべての値を文字列として扱いたい場合はJSON側ですべての値を文字列として囲んでから変換。

ローカルブラウザ変換時、設定ファイルはアップロードされる?

アップロードされません。すべてのJSON解析・YAML生成・文字列エスケープ・Unicode変換・JSON修復はブラウザローカルのJavaScriptエンジンで実行され、ネットワーク経由でサーバーに送信されません。オフラインでも使用可能。データベースパスワード・APIキー・Kubernetes Secret設定を含むJSONも安心して変換できます。

トラブルシューティング

JSONが「Unexpected token」エラーになった場合の対処は?

JSON構文エラーです。一般的な原因:①末尾余分なカンマ(trailing comma)、例 {"a":1,};②ダブルクォート代わりにシングルクォート、例 {'a':1};③キー名ダブルクォート囲みなし、例 {a:1};④コメント // または /* */。ツール下部「JSON修復」ボタンで末尾カンマ補完・ダブルクォート追加・コメント削除等を自動試行。修復後に再変換。

kubectl applyが「yaml: invalid character」エラーになる?

通常はインデントエラー。YAMLは厳密にスペースインデント要求、Tab文字混在は解析失敗原因。確認事項:①全インデントがスペースか(Tabでない);②同階層のインデントスペース数一致か(2または4スペース);③インデントがネスト階層に揃っているか。本ツール出力は純粋スペースインデント使用、Tab混在なし。ただし手動コピー&ペースト時にTab混入すると問題発生。

YAML文字列内の改行が \n になった場合の対処は?

デフォルトではJSON文字列内改行(\n)はYAML変換時に \n エスケープ。実際の改行を保持したい場合(Docker Compose command複数行等)は変換後に手動でYAMLブロックスタイルに変更:| シンボルで識別、例 description: |\n 一行目\n 二行目。または「アンエスケープ」ボタンでJSON内 \n を実際の改行に変換後再変換。

変換後YAMLでnull値が ~ シンボルになった場合は?

YAMLは ~ または null で空値表現、両者は等価。ツールが ~ を認識しない場合、手動で null に置換可能。またはツール出力オプション切替で全nullを ~ ではなく明示的に null 出力。YAML 1.1では NO/On/Off がブール値 false として解析される点注意(ノルウェー問題)、YAML 1.2で修正済み、本ツール出力は1.2仕様準拠。

中文がYAMLで \uXXXX エスケープ形式表示されるのは?

デフォルトではツールはネイティブUTF-8中文出力、エスケープされません。誤って \uXXXX 表示の場合:①入力されたJSONが元々Unicodeエスケープ形式;②下部「中文→Unicode」ボタンクリック。「Unicode→中文」ボタンで逆変換可能。

大ファイル変換でブラウザがフリーズする場合は?

リアルタイム変換最適化(500msデバウンス)実装済みだが、超大ファイル(>1MB、数十万行)では負荷可能性あり。推奨:①JSON整形ツールでJSON合法性確認;②単一の大きなJSONか複数独立JSON連結でないか確認;③超大設定ファイル(10MB+)は yq、kubectl convert 等コマンドラインツール推奨;④ブラウザフリーズ時は余分タブ閉じてメモリ解放後再試行。

用語集

YAML
YAML Ain't Markup Language(再帰的頭字語)、人間可読なデータシリアライズ形式。Kubernetes、Docker Compose、AnsibleなどDevOpsツールの実質標準設定言語。
インデント
YAMLは階層関係をインデント(スペースのみ、Tab不可)で表現。インデントエラーは設定解析失敗や意味変化を引き起こす、YAML最大の落とし穴。
シーケンス(Sequence)
YAMLの配列表現。- item で各要素を表現、JSON配列に相当。
マッピング(Mapping)
YAMLのオブジェクト表現。key: value で各キー値ペアを表現、JSONオブジェクトに相当。
ブロックスタイル(Block Scalar |)
YAMLの複数行文字列表記。| シンボルで識別、全改行とインデント保持、heredoc相当。
折りたたみスタイル(Folded Scalar >)
YAMLの複数行文字列表記。> シンボルで識別、単一改行はスペースに置換、連続2改行のみ段落区切りとして保持。
アンカーと参照(Anchor & Reference)
YAMLは &name でアンカー定義、*name で同一設定を参照、重複回避。K8sで同一Secretを複数箇所参照する場合などに一般的。
YAML 1.2
YAMLの現在の安定バージョン仕様(2009年公開、2021年マイナー改訂)。本ツールはこのバージョン(yaml.org/spec/1.2.2)に準拠。
複数文書YAML(Multi-document)
YAMLは単一ファイル複数文書をサポート、---区切り文字で異なる文書を分離。Kubernetesで1つのyamlにDeployment+Service+ConfigMap等複数リソースを含められる。
Kubernetes YAML
KubernetesマニフェストのYAML形式。apiVersion、kind、metadata、specの4必須フィールドを含む、K8sデプロイメントの実質標準。
ノルウェー問題(YAML 1.1)
YAML 1.1仕様は NO/On/Off 等をブール値 false として解釈し国名解析エラー発生。YAML 1.2で修正、本ツール出力は1.2仕様準拠。
Docker Compose
Docker複数コンテナオーケストレーションツールの設定ファイル、YAML形式。services、networks、volumes等セクションを定義、コンテナ化デプロイメントの実質標準。

JSON型とYAML記述マッピング表

本ツールは以下のルールでJSON型をYAML型に変換:

JSON型YAML記述説明
stringname: "Alice"YAMLはデフォルトクォート不要、特殊文字含む場合はダブルクォート必要
integerport: 8080YAMLは数字型自動認識、クォート不要
floatratio: 3.14浮動小数点数は整数と同様、YAMLが自動認識
booleanenabled: trueYAMLは小文字 true/false のみ、YAML 1.1は yes/no もサポート
nullvalue: null または ~YAMLは null またはチルダで空値表現
array- item1\n- item2YAMLは各行 - 開始で要素表現
objectkey:\n sub: valueオブジェクトは key: value、ネストはインデント表現
object array- name: a\n- name: bオブジェクト配列は - の後にキー値ペア

YAML文字列スタイル対照表

YAMLは6種の文字列記述方法をサポート:

スタイル構文例適用シーン
クォートなしname: Alice単純文字列、最も一般的
ダブルクォートname: "Alice"特殊文字含む、\n等エスケープ対応
シングルクォートname: 'Alice'リテラル文字列、エスケープ不要
ブロックスタイルbio: |\n line1\n line2全改行・インデント保持(heredoc)
折りたたみスタイルbio: >\n line1\n line2単一改行はスペース、二重改行で段落分け
明示的タグvalue: !!str 123型強制、デフォルト推論上書き

JSON→YAML変換例対照

複雑なJSON構造の対応YAML出力:

構造
JSON入力{"name": "app", "port": 8080}
YAML出力name: app port: 8080
JSON入力{"server": {"host": "0.0.0.0", "port": 443}}
YAML出力server: host: 0.0.0.0 port: 443
JSON入力{"hosts": [{"ip": "10.0.0.1"}, {"ip": "10.0.0.2"}]}
YAML出力hosts: - ip: 10.0.0.1 - ip: 10.0.0.2
JSON入力{"spec": {"replicas": 3, "image": "nginx:1.25"}}
YAML出力spec: replicas: 3 image: nginx:1.25

Privacy & Security

本ツールの全JSON解析・YAML生成・文字列エスケープ・Unicode変換・JSON自動修復・ファイル読み取りはブラウザローカルのJavaScriptエンジンで実行され、JSON内容と生成YAML設定はネットワーク経由でサーバーに送信されず、記録や分析もされません。データベースパスワード・APIキー・Kubernetes Secret設定を含むJSONも安心して変換可能。ローカル履歴はブラウザのlocalStorageのみ保存、ブラウザ終了またはキャッシュクリアで削除。

Authoritative References