JSON または YAML を貼り付けて方向を選ぶと、同じ欄に変換結果が表示されます。解析はブラウザー内で行われ、コメントや元の整形は引き継がれません。エラーは位置情報付きで表示されます。
ブラウザ内でローカルに実行テキスト欄は 1 つで、双方向に変換できます。YAML → JSON は入力を YAML として読み取り、対応する JSON を出力します。JSON → YAML は厳密な JSON を読み取り、YAML として書き出します。ボタンはこの 2 つだけなので、変換方向は常に明確です。
パーサーはページに同梱され、このタブ内で動作します。入力が送信されることはなく、ページを読み込んだ後はオフラインでも変換でき、テキストは端末内にとどまります。
JSON → YAML はブラウザーの JSON パーサーを使うため、入力は正しい JSON である必要があります。キーは二重引用符、コメント不可、末尾のカンマ不可、引用符なしの値も不可です。YAML はページに同梱された YAML 1.2 の出力機能で書き出し、字下げは 2 スペース、改行を含む文字列は「|-」のブロックスカラー、値の型が変わる場合だけ引用符を付けます。
YAML → JSON は 1.2 のコアスキーマで読み取ります。true と false は真偽値ですが、yes、no、on、off は文字列のままです。0x1F と 0o17 は数値、1_000 は文字列のまま。2024-01-02 のような日付もタイムスタンプにはならず、「2024-01-02」という文字列として残ります。結果は 2 スペースで字下げした JSON です。
エイリアスとマージキーは読み取り時に解決されます。「base: &b」と「<<: *b」を組み合わせたマップは、継承したキーを展開した状態で JSON になります。「<<」という文字列キーは残りません。JSON にアンカーは書けないため、往復させると通常のオブジェクトになります。
「---」で区切られた文書は順番に 1 つずつ変換します。3 つの文書なら 3 件の JSON 配列になり、状態行に文書数が表示されます。読み取れない文書がある場合は、その文書番号を含むメッセージが出て結果欄は空になります。
重複キーの扱いは 2 つの形式で異なります。JSON は最後の値を黙って採用し、YAML は重複キーがあるとメッセージを出して拒否します。±9007199254740991 を超える整数は JavaScript で正確に保持できないため、表現可能な最も近い値に丸め、状態行に件数を表示します。.inf、-.inf、.nan は JSON に書けないため null になり、こちらも件数を表示します。
構文エラーが出ると、前回の結果は画面に残さず空にします。古い変換結果を誤ってコピーすることはありません。空欄のまま実行した場合も、変換ではなく入力を促すメッセージを表示します。約 10 万文字を超える結果はシンタックスハイライトなしで表示します。テキストは完全なままで、着色を省くことで数百キロバイトの文書でもタブが固まりません。