JSON・YAML 相互変換ツール
JSON から YAML へ、YAML から JSON へ、入力しながら変換します。どちらの側を編集しても、もう一方が追従します。
ツールをここにピン留めできます。このブラウザに保存されます。
ツールをピン留めすると、そのステッカーがここに並びます。
JSON から YAML へ、YAML から JSON へ、入力しながら変換します。どちらの側を編集しても、もう一方が追従します。
JSON と YAML が表すのは同じ種類のデータで、マッピング、リスト、文字列、数値、真偽値、null です。YAML 1.2 は JSON がそのサブセットになるように作られており、そのうえで手で編集するファイルに必要なものを加えています。コメント、かっこの代わりのインデント、複数行の文字列、1 つのファイルに複数のドキュメント、値を再利用するためのアンカーとエイリアスです。
JSON から YAML への変換では、すべての値が保たれます。例外は 1 つだけで、同じオブジェクトに 2 回現れるキーは最後の値だけが残ります。YAML のマッピングではキーを重複させられないためです。YAML から JSON への変換で保たれるのはデータだけです。コメントは消え、エイリアスと << マージキーは参照先の値に置き換わり、!Ref のようなカスタムタグは値を残して取り除かれ、1 や true のような文字列以外のキーはテキストになります。
ノルウェー問題。YAML 1.1 では、クォートのない yes、no、on、off は真偽値です。そのため国コードのリストに no があると、その項目が false になってしまいます。YAML 1.2 で真偽値として残っているのは true と false だけです。このツールのパーサーは、ドキュメントが %YAML 1.1 ディレクティブで始まらない限り YAML 1.2 に従うので、no を文字列 "no" として読みます。現在使われているパーサーの多くは今も 1.1 のルールを適用するため、このツールが YAML を書き出すときは、そのような文字列をクォートで囲みます。
バージョン番号。クォートのない 1.10 は浮動小数点数で、数値としては 1.1 です。バージョン番号や郵便番号など、数値に見えるだけのものは、テキストのまま残すためにクォートで囲む必要があります(version: "1.10")。
最後に編集した側が変換元になり、もう一方はそこから書き直されます。変換元を解析できない場合は、その下にエラーが表示され、もう一方には最後に変換できた結果が残ります。インデントの設定は生成される側に適用されます。JSON のインデントを変えると入力した JSON もインデントし直されますが、入力した YAML が書き直されることはありません。書き直すとコメントが消えてしまうためです。
キーは変換元の順序のまま残ります。JavaScript のオブジェクトでは先頭に移動してしまう、数字だけのキーも同様です。2 の 53 乗より大きい整数は、どちらの方向でも 1 桁ずつそのままコピーされます。--- で区切られた複数のドキュメントを含む YAML ファイルは JSON の配列になり、そのことがページに表示されます。1 つの YAML マッピング内で 2 回使われたキーは、エラーとして報告されます。YAML の読み書きには、ブラウザ内で動くオープンソースの yaml パッケージを使っています。
YAML 1.2 は JSON がそのサブセットになるように設計されており、YAML 1.2 のパーサーは JSON ドキュメントを読み込めます。まれな例外はキーが重複しているオブジェクトで、YAML ではこれを受け付けません。JSON を YAML 側に貼り付けると、ここで試せます。
JSON にはどちらもありません。コメントは削除され、各エイリアスは、そのアンカーが持つ値のコピーに置き換わります。その JSON を YAML に戻すと、データは同じでも、コメントとアンカーのない YAML になります。
クォートがないと、YAML は 1.10 を浮動小数点数として読み、その値は 1.1 です。テキストのまま残すには "1.10" と書いてください。010 や 1e3 のような値も同様です。
いいえ。どちらの変換もブラウザのタブ内の JavaScript で行われます。このツールが入力した内容を含むネットワークリクエストを送ることはありません。
専用のウィンドウで開き、オフラインでも使えます。
インストールするには、共有ボタンをタップして「ホーム画面に追加」を選びます。