YAML・JSON変換

YAML 1.2の限定的な部分集合とJSONをローカルで相互変換します。数値の字句表現を正確に保持し、未対応の構造は黙ってデータを失う代わりに拒否します。

現在の対象範囲で、この言語に対応しているツールを表示しています。サイト内のすべてのツールがすべての言語に翻訳されているという意味ではありません。

処理はブラウザー内で行い、アップロードも自動保存もしません。ファイルの読み込みには独立した5秒の期限があり、その後、キャンセル可能な1つのworkerで行う変換処理にも5秒の期限があります。リンクは開かず、内容も実行しません。

UTF-8の入力は最大256 KiB、出力は最大2 MiBです。深さは32階層、各マップは500組、CSTまたはASTは30 000ノード、字句は120 000個までです。デコード後の文字列は65 536 UTF-16単位、数値の字句表現は1024文字までです。これらはブラウザー全体のメモリー上限ではありません。

対応するのはYAML 1.2の限定的な部分集合です。重複のない文字列キー、シーケンス、マップ、JSON値を扱います。アンカー、エイリアス、明示的なタグ、ディレクティブ、マップのマージ、複数文書、文字列以外のキー、NaN、Infinityは拒否します。シーケンス内では[{a: b}]のように明示的なマップを使用してください。

大きな数、小数、指数表記のJSON数値は、-0や1e400を含め、Numberに変換せず字句表現を保持します。対応するYAMLの数値形式はテキストとして正規化し、符号なし16進数と8進数にはBigIntを使います。引用符なしのyes、on、日付は文字列のままで、YAML 1.1の規則は有効にしません。

使い方

変換方向と入力元を選びます。テキストを貼り付けるかローカルのUTF-8ファイルを選択し、変換後にプレビューと書式が保持されない旨の通知を確認してください。明示的な操作で結果全体をコピーするか、converted.jsonまたはconverted.yamlをダウンロードします。長すぎるテキストや読み込めなかったファイルは、その入力自体を修正するまで拒否されたままです。別の設定を変更しても古い値で処理を再開しません。読み込みと変換はキャンセルでき、元のファイルは変わりません。

使用例

YAMLのn: 9007199254740993から生成されるJSONは、その数値を正確に保持します。JSONの{"n":1e400,"name":"日本語"}から生成されるYAMLは、Infinityにせず1e400を保持します。.5は0.5、0o10は8になりますが、yesと日付2026-09-25は文字列のままです。

対応範囲と制限

値、マップとシーケンスの順序、JSON文法の数値の字句表現を、Numberに変換せず保持します。対応するYAMLの数値形式はテキストとして正規化し、符号なし16進数と8進数にはBigIntを使います。YAML 1.1は有効にせず、コメント、書式、引用符、元の改行は保持しません。出力はBOMなしのUTF-8で、末尾にLFを追加します。エイリアス、アンカー、!!strを含む明示的なタグ、ディレクティブ、複数文書、マージ、文字列以外のキー、重複キー、NaN、Infinity、[a: b]のような省略形のフローペアは拒否します。明示的なマップを使ってください。ファイルは有効なUTF-8が必要です。入力のBOMは保持し、YAMLでは先頭にある場合に受理しますが、JSONでは拒否します。プレビューはテキストのみで、結合文字を含む文字の途中で終わる場合があります。クリップボードの改行はシステムによって変わる場合があります。アップロード、保存、実行、リンク先へのアクセスは行いません。

よくある質問

すべてのYAMLに対応していますか?文書を自動修復しますか?

いいえ。JSONの値で表現できる、明示したYAML 1.2の部分集合だけを変換し、未対応または上限を超える入力は拒否します。変換は安全化処理やデータスキーマの検証ではありません。他のアプリが大きな数値を丸めずに読むことも保証しません。処理を制限しても、ブラウザー全体のメモリー使用量の上限を保証するものではありません。

関連ツール