YAML→JSON変換ツールとは?
YAML to JSON Converterは、YAMLドキュメントを等価なJSON構造に即座に変換します。アンカー、エイリアス、複数行文字列、ネストされたマップ、シーケンスに対応しているので、Kubernetes設定やCI/CDパイプラインなどのYAMLデータをAPI・コード用のJSONに変換できます。
js-yaml をベースにしているので、単純な変換器が取りこぼしがちな YAML 1.2 の機能、つまりアンカーとエイリアス(&ref / *ref)、複数行ブロック文字列(|, >)、明示的な型タグ、yes/no/on/off などのブール表記をきちんと扱います。逆方向モードもあり、JSON を YAML に戻すときには構造を保ちつつ、読みやすいときはスカラ配列を一行に畳んでくれます。
使い方
- ステップ1 — YAMLコンテンツを貼り付けるか、.yml/.yamlファイルをアップロードします。構文エラーは行番号付きでハイライトされ、素早く修正できます。
- ステップ2 — 変換されたJSON出力を確認します。インデントはスペース2つ、4つ、タブ、コンパクトから選べます。
- ステップ3 — JSONをコピーするか、.jsonファイルとしてダウンロードします。逆変換モードでJSONからYAMLへの変換も可能です。
使用するタイミング
- Kubernetes マニフェストや Helm values を JSON に直して、自前のバリデーションスクリプトに渡すとき。
- GitHub Actions や GitLab CI の設定を、JSON しか受け付けないツールに食わせるとき。
- docker-compose の schema エラーを追うため、YAML と JSON の間を行き来するとき。
結果
デプロイメントAPI用にdocker-compose.ymlをJSONに変換する必要があります。サービス、ボリューム、ネットワーク定義を含むYAMLを貼り付けると、すべてのネスト構造と配列が保持された有効なJSONが生成され、APIでそのまま使用できます。
よくある質問
- YAML のアンカーとエイリアス(& と *)は扱えますか?
- 扱えます。js-yaml はパース時にアンカーを解決するので、出力 JSON には参照構文ではなく展開済みの値が入ります。YAML で 2 つのキーがアンカーを共有していても、JSON ではそれぞれが自分のコピーを持ちます。
- YAML のブール(yes / no)がツールによって文字列になるのはなぜ?
- YAML 1.1 では yes/no/on/off がブールでしたが、YAML 1.2 では true/false だけです。本ツールは 1.2 準拠なので、yes/no は明示的に true/false と書かない限り文字列のままです。いわゆる「ノルウェー問題」もここではほぼ起きません。
- JSON を YAML に戻せますか?
- 戻せます。リバーストグルをオンにすると、入力が JSON、出力が YAML になります。ダンパーは入れ子のオブジェクトや配列を保持し、改行を含む長いキーは可読性のためブロックスカラ(|)として出力されます。
- 日付やタイムスタンプはどう扱われますか?
- YAML の日付・タイムスタンプリテラルは JSON では ISO 8601 形式の文字列になります(JSON にネイティブな日付型がないため)。リバースで往復しても文字列のまま保持され、YAML の暗黙日付型に復元しません。こちらの方が安全な既定です。
- インデント設定の使い分けは?
- 2 スペースは JavaScript と大半の API の事実上の標準。4 スペースは Python の PEP 8 に揃うので、結果を .py に埋め込むなら最適。コンパクト(0)は一行出力で、HTTP リクエストボディや curl コマンドに貼り付けるのに向きます。Tab は本物のタブ文字で JSON をインデントし、Go や Makefile に便利です。YAML はタブを使えないため、逆方向モードでは 2 スペースに切り替わります。