JSON⇄YAML変換
JSONをYAMLに、YAMLをJSONに、貼り付けるだけで変換します。YAMLは1.2のコアスキーマで読み、複数ドキュメント(---)・アンカー・タグに対応。エラーは行と列つきで日本語で表示します。
読み込み中…
使い方と仕様
「JSON → YAML」は、JSONを貼ると、インデント幅(2・3・4スペース)を選んでYAMLにします。キーの順は入力どおりに保ちます("2" と "1" のような整数に見えるキーも並べ替えません)。"123"、"true"、"null"、"1e3" のように、そのまま書くとYAMLで数や真偽値に読まれてしまう文字列は、引用符で囲んで出力します。書き出したYAMLは自動で読み直し、元のJSONと同じ値になるかを確かめ、一致しないときは警告を出します。
「YAML → JSON」は、YAML 1.2 のコアスキーマで読みます。YAML 1.1 では真偽値になっていた yes / no / on / off は、ここでは文字列です。真偽値は true / false(True、TRUE も可)、null は null / ~ / 空、整数は 10進・0x(16進)・0o(8進)、小数は 1e3 のような指数も読みます。日付や時刻(2026-10-22 など)は文字列のままです。%YAML 1.1 の指示があっても、1.2 で読みます。
---で区切られた複数のドキュメントは、1つの配列にして出力します(ドキュメントが1つなら配列にしません)。アンカー(&名前)とエイリアス(*名前)は、参照先の中身に展開します。マージキー(<<)は展開せず、キー名 "<<" のまま出ます。タグは !!str と !!int などが効き、!!binary は base64 の文字列、!!set は配列、!!timestamp は ISO 8601 の文字列にして、その旨を警告に出します。解決できないタグは、警告を出してタグを無視します。.nan と .inf はJSONに書けないので null にします。
YAMLの文法エラーは、行・列、その行の文字列、原因(インデントの不揃い、タブのインデント、重複キー、未定義のエイリアスなど)を日本語で示します。エイリアスの展開が大量になる入力(100個を超える参照)と、自分自身を含むエイリアスは、固まるのを避けるため変換しません。2^53 を超える整数は、YAML → JSON では桁のまま書き出しますが、JSON → YAML では、JSON.parse と同じく倍精度で読む段階で近い値に丸められるため、丸まったおそれのある数を警告します。コメントはYAMLにしかないため、JSONにすると消えます。
よくある質問
- YAMLの yes や no が、JSONで true / false になりません。
- YAML 1.2 では、yes / no / on / off は文字列です(YAML 1.1 では真偽値でした)。1.1 を前提にした設定ファイルを変換するときは、true / false に書き換えてください。
- YAMLのコメントやアンカーはどうなりますか?
- コメントはJSONに存在しないので消えます。アンカーとエイリアスは展開されて、同じ中身がJSONに複数回出ます。JSONからYAMLに戻しても、アンカーは復元されません。
- 桁数の大きい数が、JSON → YAML で変わってしまいます。
- 9007199254740993 のように、2^53 を超える整数は、JSONを読む段階で近い値(9007199254740992)になります。丸まったおそれのある数は警告に出します。IDなど桁が大事な値は、JSON側で文字列にしてください。