YAML JSON 変換器
YAMLとJSONを即座に相互変換。ネストオブジェクト・配列・YAML 1.2全機能対応。無料、ブラウザ内で処理。
- ブラウザ内で処理
- データはブラウザ外に出ません
- 無料 · 登録不要
WeChat でスキャンしてシェア
例・詳しい説明・よくある質問 実際の出力つきの例、ほかのツールとの違い、よくある質問。
YAMLとJSONの使い分け
YAMLはDocker Compose、Kubernetes、GitHub Actions、Ansible、Helm Chartsなどの設定ファイルで広く使われています。JSONはREST API、Webブラウザ、プログラム間のデータ交換に適しています。両形式の変換が必要な場面で活用してください。
型が変わる値
このツールは js-yaml 4.3.2 を使い、YAML 1.2 の core schema とタイムスタンプに従います。次の入力はこう変換されます。
| YAML | JSON | 補足 |
|---|---|---|
country: NO | "NO" | 文字列。PyYAML など YAML 1.1 のパーサーは false と読む |
enabled: yes | "yes" | 同上。真偽値なら true と書く |
version: 1.10 | 1.1 | 数値として解析される。バージョン番号は引用符で囲む |
mode: 0755 | 755 | YAML 1.2 では先頭の 0 は 8 進数を意味しない。0o755 と書く |
zip: 01234 | 1234 | 先頭の 0 が消える。この種のコードは引用符で囲む |
date: 2026-09-29 | "2026-09-29T00:00:00.000Z" | 日付は UTC のタイムスタンプになる |
at: 2026-10-01T09:30:00+09:00 | "2026-10-01T00:30:00.000Z" | オフセットは UTC に換算される。JSON に日付型はないので UTC の ISO 8601 文字列になる。時刻は同じだが、書かれていた +09:00 は残らない |
zero: -0.0 | -0.0 | 負のゼロは符号を保つ(JSON.stringify だけでは 0 になる) |
empty: | null | 値のないキーは null |
制限事項
-
変換できる文書は 1 つだけです。
---で区切られた入力はexpected a single document in the stream, but found moreというエラーになります。 -
JSON や YAML で表せない値があると変換しません。 YAML の
.inf・-.inf・.nanと、どちらの方向でも ±(2^53 − 1) を超える整数は、変換で値が変わります(JSON.stringifyはnullと書き、JSON.parseと js-yaml は大きな整数を丸めます)。ステータス行に各フィールドを JSON Pointer で示します。次の YAML はsize: .inf id: 9007199254740993変換していません:JSON では次の値を変えずに表せません:/size:inf は JSON で表せません(JSON.stringify は null と書きます);/id:整数 9007199254740993 は ±(2^53 − 1) を超えるため、JavaScript では丸められますになります。1e400のように倍精度の範囲を超える JSON の数値も同じように示します。大きな ID は引用符で囲んでください。変換できる入力になるまで、出力パネルは空になりコピーボタンは無効です。 -
存在しない日付とミリ秒より細かい時刻は変換しません。 js-yaml は
Date.UTCで日付を作るため2026-02-31を 3 月 3 日に繰り越し、時刻はミリ秒までしか残しません。こうしたタイムスタンプがあると変換を止めます。次の YAML はdue: 2026-02-31 at: 2026-10-01T09:30:00.123456Z変換していません:JSON では次の値を変えずに表せません:/due:2026-02-31 は有効な日付・時刻ではありません;/at:2026-10-01T09:30:00.123456Z はミリ秒より細かい精度を持っていますになります。テキストとして扱いたい値は引用符で囲んでください(due: "2026-02-31")。有効な日付・時刻は上の表のとおり UTC に変換します。 -
js-yaml の処理上限。 js-yaml 4.3.2 は、ネストが 100 階層を超える文書、マージキー(
<<)で処理するマッピングとキーが合計 10,000 個を超える文書、1 つのマージキーに 100 個を超えるマッピングを並べた文書を止めます。例:無効な YAML: コレクションのネストが 100 階層を超えています(js-yaml の既定の上限) (1:103)。 -
重複したキーはエラーになります(
duplicated mapping key)。黙って上書きはしません。 -
コメントとアンカーは残りません。 アンカーと
<<のマージキーは展開されて普通のコピーになります。 -
JSON の整数
-0は0になります。{"count":-0,"offset":-0.0}はcount: 0とoffset: -0.0になります。YAML 1.2 は-0を整数のゼロとして読み、-0.0は負の浮動小数点ゼロのままです。 -
JSON → YAML では曖昧な文字列を引用符で囲みます(
'1.10'、'yes'、'NO'など)。読み直しても文字列のままです。
FAQ
YAMLとJSONの違いは何ですか?
YAMLはインデントで構造を表現し、コメント・複数行文字列・アンカー&エイリアスなどの機能を持ち、人間にとって読み書きしやすい形式です。JSONはより厳密で機械処理向けです。設定ファイルにはYAML、APIにはJSONが多く使われます。
YAMLのコメントは変換後も保持されますか?
いいえ。JSONにはコメントの概念がないため、YAML→JSON変換時にコメントは除去されます。
YAML 1.2に完全対応していますか?
主要な機能(ネストオブジェクト・配列・文字列型・数値型・真偽値・ヌル・アンカー&エイリアス)に対応しています。
データはサーバーに送信されますか?
いいえ。すべての変換処理はブラウザ内で完結します。