JSON から YAML への変換

左側に JSON を貼り付けると、右側に一貫したインデントの YAML 1.2 が表示されます。すべてブラウザ上で動作 — アップロード不要。

  1. 左側のテキストエリアに JSON を貼り付けます。
  2. 「YAML に変換」をクリック。YAML 出力が右側に表示されます。
  3. 結果をコピーするか、ダウンロードをクリックして data.yaml として保存します。
  4. JSON が無効な場合、エラーメッセージは問題のある位置を示します。
何ができるのか?

JSON を等価な YAML 1.2 に変換します。オブジェクトはマッピングに、配列はシーケンスに、数値/ブール/null/文字列は型を保持します。出力はデフォルトで 2 スペースインデントと 100 列の行幅を使用します。JSON → YAML → JSON のラウンドトリップでは意味的に同一のデータが得られますが、コメントや順序の細部は JSON 側の制約として注意が必要です。

JSON 入力:

{"name":"Ada","tags":["math","logic"],"active":true}

YAML 出力:

name: Ada
tags:
  - math
  - logic
active: true

よくある JSON エラーと修正方法

YAML に変換するには、JSON が有効である必要があります。パーサは失敗の行と列を示します — これらのパターンが「無効な JSON」エラーのほとんどを説明します。

  • 末尾のカンマ。 `{"a": 1, "b": 2,}` は無効です。JSON はオブジェクトや配列の最後の要素の後にカンマを許可しません。
  • シングルクォート。 `{'a': 1}` は無効です。JSON 文字列とキーは二重引用符を使う必要があります。
  • 引用符のないキー。 `{a: 1}` は無効です — JavaScript のオブジェクトリテラルではこれが許されますが、JSON では許されません。キーを二重引用符で囲んでください。
  • コメント。 厳格な JSON では // や /* */ コメントは許可されません。変換前に削除するか、# コメントをサポートする YAML 出力に半手動で貼り付けてください。
  • スマートクォート。 ワードプロセッサからのコピー&ペーストでは、" がカーリークォートに置き換わることがあります — JSON はこれらを拒否します。再入力するか、プレーンテキストエディタを通して貼り付けてください。
  • NaN / Infinity。 JSON には NaN、Infinity、-Infinity の表現がありません。データに含まれている場合は、null としてシリアライズする(情報を失う)か、文字列 "NaN" として扱う(意図は保持されるが型が変わる)を選んでください。
よくある質問

なぜ YAML 出力にコメントがないのですか?

JSON にはコメント構文がないため、引き継ぐコメントはありません。コメント付き YAML が必要なら、変換後に手動で編集してください。一部のチームは JSON で `_comment` フィールドとしてコメントをエンコードしますが、それは YAML では通常のキーになります — 実際のコメントではありません。

キーの順序は保持されますか?

はい。JSON オブジェクトのキー順序は YAML マッピング順序として保持されます — 挿入順を保持する最新のブラウザの JSON.parse + JSON.stringify と同様です。アルファベット順が必要なら、先に JSON をソートしてください。

深くネストされた構造はどう書式設定されますか?

YAML 出力はレベルごとに 2 スペースのインデントを使用し、シーケンスはブロックスタイル(1 行 1 アイテム、`-` プレフィックス)になります。空のオブジェクトと配列はそれぞれ `{}` と `[]` として表示されます — 空ではブロックスタイルが曖昧になるため、フロースタイルです。

バイナリデータをサポートしていますか?

JSON にはネイティブバイナリ型がないため、バイナリは通常入力ですでに base64 文字列としてエンコードされています。出力 YAML はその文字列を保持します。実際に YAML バイナリ形式(`!!binary`)が必要な場合、変換ではそれは生成されません — base64 文字列アプローチを維持してください。

API キーのような機密 JSON でも安全ですか?

はい。すべてはあなたのブラウザで実行されます。あなたの入力はこのページの JavaScript で解析・変換され、サーバーには接触しません。ブラウザの開発者ツールで確認できます — 変換クリック時にネットワーク要求はゼロです。

JSON → YAML → JSON のラウンドトリップは可能ですか?

データに関しては、はい — 意味は保持されます。バイト単位で完全に等価なテキストには、いいえ — 空白と引用符が正規化されます。安定した正規形式が必要なら、貼り付け前にソート済みのキーで JSON.stringify を実行してください。