YAML・JSON相互変換
YAMLをJSONへ、JSONをYAMLへ変換します。ネスト・フロー形式・ブロックスカラー・アンカー・複数ドキュメントに対応し、構文エラーは行と列で示します。
YAMLを貼り付けると自動で変換します。
確認してください
補足
- YAML 1.2 の core schema で型を決めます。
yes/no/on/offは真偽値ではなく文字列です(YAML 1.1 とは異なります)。真偽値にしたい場合はtrue/falseと書いてください。 0123のような先頭が 0 の数字は数値 123 として読みます。郵便番号などは引用符で囲んでください。- 対応: ブロックのマッピング・リスト、フロー形式
{a: 1}[1, 2]、引用符とエスケープ、|と>(+/-付き)、コメント、アンカー&とエイリアス*、マージキー<<、複数ドキュメント(---)。 - 非対応: タグ(
!!strなど)、複雑なキー(?)、%TAG。見つけた場合は行番号付きのエラーにします。 - 複数ドキュメントは、ドキュメントごとの値を並べた JSON の配列にします。
.inf/.nanは JSON で表せないためnullになります。 - JSON → YAML では、
trueや123、:を含む文字列、-や#で始まる文字列など、別の意味に読まれるものだけを引用符で囲みます。YAML 1.1 で真偽値や数値に化けるyesなども囲みます。 - コメントは変換結果に残りません。数字だけのキーは、JavaScript の仕様により出力の先頭へ並び替わることがあります。
よくある質問
yes / no / on / off は true / false に変換されますか?
変換されず、文字列のまま残ります。YAML 1.2 の core schema に従い、真偽値として読むのは true / false(True / TRUE なども含む)だけです。YAML 1.1 を前提にしたツールとは結果が変わるため、該当する値があれば注意書きを表示します。JSON → YAML では、YAML 1.1 のパーサでも誤読されないよう yes や on などの文字列を引用符で囲みます。
YAMLのどこが間違っているか分かりますか?
分かります。インデントのずれ、タブによる字下げ、閉じていない引用符や括弧、重複したキーなどを、行と列を添えたエラーで示します。
アンカー(&)やエイリアス(*)、複数ドキュメント(---)は使えますか?
使えます。エイリアスはアンカーの値に展開し、マージキー(<<: *base)も扱います。--- で区切った複数のドキュメントは、ドキュメントごとの値を並べた JSON の配列にします。
タグ(!!str など)や複雑なキー(? )は使えますか?
使えません。解釈できない書き方を黙って別の意味に読まないよう、見つけた時点で行番号付きのエラーにします。%TAG ディレクティブも同じく非対応です。
コメントや数値の書き方は保持されますか?
保持されません。いったん値として読み込んでから書き出すため、コメントは消え、0x1F や 1e3 のような数値は JSON の 10 進表記になります。先頭が 0 の数字(0123)は数値 123 として読むため、0 を残したい値は引用符で囲んでください。