YAML JSON変換:YAMLからJSONへ、JSONからYAMLへ

このYAML JSON変換ツールは、YAMLをJSONに、JSONをYAMLに変換します。YAML 1.2に沿って、入れ子のオブジェクト、リスト、複数行テキスト、エイリアス付きアンカー、複数ドキュメントを解釈します。エラーは行番号で示され、データはブラウザの外に出ません。

出典:YAML Language Specification, Version 1.2.2 (Syntax, Core-Schema, Skalar-Typen)。更新日:

YAML → JSONでは4つの選択肢すべてが有効です。JSON → YAMLでは、4スペースを選んだ場合は4スペース、それ以外は2スペースになります。
各オブジェクトのキーを昇順に並べます。オフのときは入力の順序を保ちます。
マイツールボックス入力内容はこのブラウザーにのみ保存されます。

テキストはブラウザ内だけで処理されます。---で区切った複数のYAMLドキュメントは、JSONの配列になります。

入力したテキストはブラウザー内にとどまります。送信・保存されず、アドレスバーにも表示されません。

結果

変換結果
{ "name": "マイアプリ", "version": 1.2, "active": true, "server": { "host": "localhost", "ports": [ 80, 443 ] }, "tags": [ "web", "api" ], "description": "複数行のテキストも\nそのまま保持されます。\n" }
サイズ
17行、225文字。

計算方法

YAMLは、Docker Compose、Kubernetes、GitHub Actions、OpenAPIなどで使われる、読みやすい設定用のデータ形式です。JSONは、ほぼすべてのプログラミング言語やAPIで扱えます。このツールは両方向に変換できます。

YAMLをJSONに変換する手順

  1. 上で「YAML → JSON」の向きを選びます。
  2. YAMLを貼り付けるか、「サンプルテキスト」を押します。
  3. JSONをコピーするかファイルとしてダウンロードします。「結果を入力にする」を押すと向きが逆になり、結果が元に戻るかどうかを確認できます。

対応している記法

入れ子のオブジェクトとリスト、角括弧や波括弧の値、シングルクォートやダブルクォートのテキスト(複数行も可)、チョンピングを含む|と>のテキストブロック、コメント、エイリアス付きのアンカーとマージキー(<<)、---による複数ドキュメント、そして!!str、!!int、!!float、!!bool、!!nullの各タグに対応しています。

YAML 1.2での型の扱い

制限

複雑なキー(? )、独自タグ、キーへのアンカーには対応していません。黙って誤読するのではなく、エラーメッセージでお知らせします。JSONにはコメントがないため、JSONへの変換でコメントは失われます。XMLはここでは変換しません。JSON → YAMLでは、2^53を超える数値はブラウザのJSONパーサーで精度が落ち、数値のキーはJSONでは常に先頭に並びます。

テキストはブラウザ内にとどまり、送信も保存もされません。

よくある質問

YAMLをJSONに変換するには?

「YAML → JSON」の向きを選んでYAMLを貼り付けます。JSONがすぐに表示され、コピーやダウンロードができます。エラーがあれば、メッセージに行番号が出ます。

「yes」がtrueにならないのはなぜですか?

このツールがYAML 1.2を採用しているためです。YAML 1.2では、trueとfalseだけが真偽値で、yes、no、on、offは文字列のままです。YAML 1.1では真偽値とみなされ、不具合の原因になりがちでした(ノルウェーの「NO」問題)。

コメントは失われますか?

JSONへの変換では失われます。JSONにコメントがないためです。逆方向でも、JSONにコメントが含まれないので、YAMLにもコメントは付きません。

1つのファイルに複数のドキュメントがあるとどうなりますか?

---で区切られたドキュメントは、1ドキュメントを1要素としてJSONの配列にまとめられます。ドキュメントが1つだけの場合は、そのまま変換されます。

アンカーとエイリアスはどう扱われますか?

エイリアスは、アンカーの値に置き換えられます。マージキー「<<」はアンカーのキーを取り込み、既にあるキーが優先されます。極端に枝分かれするエイリアスは、悪用とみなして拒否します。

入力はアップロードされますか?

いいえ。変換はブラウザ内で行われ、テキストは送信も保存もされず、アドレスバーにも書き込まれません。

出典・根拠

更新日:

関連ツール