開発者ツール

JSON ↔ YAML 変換ツール

入れ子の配列、文字列、正確な数値を含む JSON と YAML をローカルで相互変換します。

入力値

YAML 1.2 のデータ変換です。コメントや書式は保持されません。入力上限:2 MiB。

計算結果

意図したデータ型を保って JSON と YAML を変換する

厳密な JSON と YAML 1.2 コア構文の間で、JSON と互換性のあるデータを変換します。JavaScript の数値に変換して先に丸めることなく、大きな整数を含む JSON の数値トークンを保持します。変換するのはデータの値であり、元の文書の書式やアプリケーションの設定スキーマではありません。YAML のコメント、アンカー、表示上の選択は JSON への変換で維持されません。

使い方

  1. テキストを貼り付けるか、端末上の UTF-8 の JSON、YAML、YML、TXT ファイルを開きます。JSON → YAML または YAML → JSON を明示的に選びます。ファイルを開くだけでは変換方向は判定されません。
  2. 空白二つまたは四つを選び、必要に応じてオブジェクトのキーを並べ替えます。入力を処理し、構文や未対応機能のエラーを解消します。並べ替えは再帰的で、大文字と小文字を区別する辞書順です。配列の順序は変わりません。
  3. 文字列、真偽値、null、数値を確認し、コピー、印刷、または converted.yaml や converted.json をダウンロードします。入力や設定を編集すると以前の出力が消去されるため、再び処理してください。変換したファイルを、実際に使用するアプリケーションでも検証します。

設定と制限

型と文書の規則
一つの YAML 1.2 文書を使い、キーは重複しない文字列、値は JSON 互換にします。"00123" のような数値に見える識別子は引用符で囲んでください。YAML で引用符のない 00123 は数値の 123 になります。引用符のない yes、on、ISO 形式の日付はコア規則では文字列のままです。
エイリアスと未対応機能
循環しないエイリアスは、同じ値の繰り返しとして展開されます。循環、重複キー、文字列以外のキー、未対応タグ、有限でない数値は拒否されます。YAML のマージキーは適用されません。<<: *base は通常の "<<" プロパティになるため、継承させたい項目は先に展開してください。
容量と複雑さ
入力は UTF-8 テキストの 2 MiB(2,097,152 バイト)まで、出力は 8 MiB までです。入れ子が 128 段階、値のノードが 200,000 個、エイリアスの参照回数が 100 回を超えても処理は停止します。小さなファイルでもこれらの制限を超える場合があります。

操作例

types-example.json をダウンロードし、JSON → YAML、空白二つのインデント、並べ替えなしを選びます。変換して types-example.yaml と比較します。引用符で囲まれた id と word は文字列、enabled は false、retries と large は数値のままです。

サンプルファイルをダウンロード

入力例

{"id":"00123","word":"yes","enabled":false,"retries":3,"large":9007199254740993}

想定される結果

"id": "00123"
"word": "yes"
"enabled": false
"retries": 3
"large": 9007199254740993

次に types-example.yaml を開き、明示的に YAML → JSON へ切り替えて再び処理します。id は "00123"、大きな整数は 9007199254740993 のままであるはずです。YAML の 00123 の引用符を外して再度処理すると、値は数値の 123 になります。両方のファイルが有効でも、この違いは識別子に影響します。

よくある質問とトラブル対処

別の場所で整形できる重複キーの JSON が、ここで失敗するのはなぜですか?

JSON 整形ツールは重複キーを残して警告できます。この変換ツールは、マッピングへの変換で意味が変わるおそれがあるため拒否します。元データに残す値を決め、変換前に重複を削除してください。

コメントや YAML の継承は保持されますか?

JSON にコメントやアンカーはありません。エイリアスは展開され、マージキーは継承として適用せず、そのまま出力します。意図したデータを展開して結果を確認してください。すべての YAML 機能を忠実に書き換えるものではありません。

大きな数値は利用先のアプリケーションでも安全ですか?

変換ツールは対応する数値表記と大きな整数値を保持しますが、後で使うプログラムは低い精度で解析する場合があります。数値に見える値が識別子なら引用符で囲んだ文字列を使い、利用先のパーサーで試してください。