tigtools

YAML → JSON コンバーター

YAML(Kubernetes マニフェスト、CI ファイル、OpenAPI 仕様、設定ファイルなど)を貼り付けると、整形された JSON をすぐに取得できます。何もアップロードされません。

ブラウザー内で動作 登録不要

インデント

代わりにJSONをYAMLに変換

使い方

  1. 入力欄に YAML を貼り付けるか、サンプルを試してください。
  2. インデントを 2 スペースまたは 4 スペースから選択します。
  3. 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 がアップロードされたり保存されたりすることはありません。