開発者ツール
JSON ↔ YAML 変換ツール
入れ子の配列、文字列、正確な数値を含む JSON と YAML をローカルで相互変換します。
計算結果
意図したデータ型を保って JSON と YAML を変換する
厳密な JSON と YAML 1.2 コア構文の間で、JSON と互換性のあるデータを変換します。JavaScript の数値に変換して先に丸めることなく、大きな整数を含む JSON の数値トークンを保持します。変換するのはデータの値であり、元の文書の書式やアプリケーションの設定スキーマではありません。YAML のコメント、アンカー、表示上の選択は JSON への変換で維持されません。
使い方
- テキストを貼り付けるか、端末上の UTF-8 の JSON、YAML、YML、TXT ファイルを開きます。JSON → YAML または YAML → JSON を明示的に選びます。ファイルを開くだけでは変換方向は判定されません。
- 空白二つまたは四つを選び、必要に応じてオブジェクトのキーを並べ替えます。入力を処理し、構文や未対応機能のエラーを解消します。並べ替えは再帰的で、大文字と小文字を区別する辞書順です。配列の順序は変わりません。
- 文字列、真偽値、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 機能を忠実に書き換えるものではありません。
大きな数値は利用先のアプリケーションでも安全ですか?
変換ツールは対応する数値表記と大きな整数値を保持しますが、後で使うプログラムは低い精度で解析する場合があります。数値に見える値が識別子なら引用符で囲んだ文字列を使い、利用先のパーサーで試してください。