使い方
- 入力欄に YAML を貼り付けるか、サンプルを試してください。
- インデントを 2 スペースまたは 4 スペースから選択します。
- JSON をコピーするか、.json ファイルとしてダウンロードします。
仕組み
YAML は、オープンソースの yaml ライブラリで YAML 1.2 コアスキーマを使用して解析されます。これは現在のツールが期待する動作で、yes、no、on、off は文字列のまま、真偽値になるのは true と false だけです。アンカー(&name)とエイリアス(*name)は展開され、<< マージキーが適用されます。エイリアス展開の回数には上限があるため、意図的に膨れ上がる文書はページをフリーズさせずに拒否されます。
--- で区切られた複数の文書を含むファイルは、文書ごとに 1 つの要素を持つ JSON 配列になります。コメント、アンカー、タグは JSON に対応するものがないため削除されます。キーの順序は維持されます。タイムスタンプは文字列のままです。約 15 桁を超える整数は精度が失われます。これは JavaScript で扱う JSON と同様です。
YAML が無効な場合、最初のエラーが行番号と列番号付きで表示されます。たとえば、インデントにタブが使用されている、閉じ括弧がないなどです。逆方向の変換には、JSON to YAML または双方向の JSON ⇄ YAML コンバーターをご利用ください。
使用例
アンカー付き CI ファイル
デフォルトブロックを <<: *defaults で再利用するジョブリストが JSON になり、デフォルトが各ジョブにコピーされるため、各ジョブが実際に受け取る内容を正確に確認できます。
複数ドキュメントの Kubernetes ファイル
Deployment と Service が --- で区切られたファイルは、2 つのオブジェクトからなる JSON 配列になり、そのまま kubectl や jq で利用できます。
よくある質問
なぜ yes は文字列のままなのですか?
ここや現在のほとんどのツールで使われている YAML 1.2 では、true と false だけが真偽値として扱われます。古い YAML 1.1 パーサーは yes、no、on、off を真偽値に変換したため、多くのバグの原因になりました。
コメントはどうなりますか?
JSON にはコメントがないため、コメントは削除されます。データ自体は変更されません。
サイズ制限はありますか?
制限はブラウザのメモリだけです。大きいファイルは入力中に短い待機を挟んで変換されるため、ページの応答性が保たれます。
プライバシー
変換はすべてブラウザ内で実行されます。YAML と JSON がアップロードされたり保存されたりすることはありません。