JSON → YAML / YAML → JSON 変換

JSON または YAML を貼り付けて方向を選ぶと、同じ欄に変換結果が表示されます。解析はブラウザー内で行われ、コメントや元の整形は引き継がれません。エラーは位置情報付きで表示されます。

ブラウザ内でローカルに実行

JSON を YAML に、YAML を JSON に変換する方法

テキスト欄は 1 つで、双方向に変換できます。YAML → JSON は入力を YAML として読み取り、対応する JSON を出力します。JSON → YAML は厳密な JSON を読み取り、YAML として書き出します。ボタンはこの 2 つだけなので、変換方向は常に明確です。

パーサーはページに同梱され、このタブ内で動作します。入力が送信されることはなく、ページを読み込んだ後はオフラインでも変換でき、テキストは端末内にとどまります。

  1. JSON または YAML を欄に貼り付けるか入力します。プレースホルダーは「YAML または JSON を入力してください」です。
  2. YAML → JSON を押すと、入力を YAML として読み取り、2 スペースで字下げした JSON を出力します。
  3. JSON → YAML を押すと、入力を厳密な JSON として読み取り(キーは二重引用符、コメント不可、末尾のカンマ不可)、YAML を出力します。
  4. 結果の上の行を確認します。変換方向と文書数が表示され、読み取れない場合は最初のエラーの行と列を含むメッセージに変わります。
  5. コピーは結果のテキストをそのまま取り出します。クリアを押すと次の文書のために両方の欄が空になります。

各方向が受け付ける入力

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 万文字を超える結果はシンタックスハイライトなしで表示します。テキストは完全なままで、着色を省くことで数百キロバイトの文書でもタブが固まりません。

最近使ったツール: