JSON を YAML に変換する方法
- JSON を貼り付けるか、ファイルを開きます。入力に合わせて YAML が表示されます。インデントは 2 スペースまたは 4 スペースから選べます。
- 逆に変換するには、変換方向を YAML → JSON に切り替えて YAML を貼り付けます。
- 結果をコピーするか、
.yamlまたは.jsonファイルとしてダウンロードします。
JSON と YAML の違い
| JSON | YAML | |
|---|---|---|
| 構造 | 波括弧 {} と角括弧 [] | インデントと - によるリスト項目 |
| 文字列 | 常にダブルクォートで囲む | 必要な場合のみ引用符で囲む |
| コメント | 使用不可 | # comment |
| 複数行のテキスト | \n エスケープ | | によるリテラルブロック |
| 主な用途 | API とデータ交換 | 設定ファイル |
YAML 1.2 は JSON のスーパーセットなので、JSON ドキュメントはそのままでも有効な YAML です。このツールは、より読みやすいブロック形式で出力します。
YAML で引用符が必要な値
引用符なしで書くと型が変わってしまう単語があります。YAML 1.1 のパーサーでは yes、no、on、off は真偽値になり、007 や 1e3 は数値、null や ~ は null を意味します。これが有名な「ノルウェー問題」で、国コード NO を引用符で囲まないと false に変わってしまいます。このツールはこうした文字列を自動で引用符で囲むため、YAML を読み込み直してもまったく同じデータになります。
YAML → JSON 変換で対応している YAML
パーサーは、設定ファイルや API で使われる YAML を解釈できます。ブロック形式のマッピングとリスト、引用符なし・シングルクォート・ダブルクォートの文字列、| と > の複数行ブロック、インラインの [ ] と { } コレクション、コメント、--- ドキュメントマーカーに対応しています。アンカー(&)、エイリアス(*)、カスタムタグは非対応として行番号付きで報告されます。複数ドキュメントを含むファイルでは、最初のドキュメントだけが変換されます。
よくある質問
YAML は JSON のスーパーセットですか?
YAML 1.2 は JSON のスーパーセットとして設計されているため、ほぼすべての JSON ファイルは有効な YAML でもあります。逆は成り立ちません。YAML には、JSON にないコメント、アンカー、複数行ブロックがあります。
YAML を JSON に変換するとコメントは残りますか?
いいえ。JSON にはコメントがないため、削除されます。キー、値、およびその順序は保持されます。
YAML がエラーになるのはなぜですか?
よくある原因は、インデントにタブを使っている(YAML ではスペースのみ使用可)、同じリストやマッピングの項目が同じ列から始まっていない、コロンの後にスペースがない、といったものです。エラーメッセージに該当する行が表示されます。
YAML の値は JSON でどの型になりますか?
YAML 1.2 のコアスキーマに従います。true/false は真偽値に、null と ~ は null に、引用符なしの数値は JSON の数値になります。一方、yes のような単語は文字列のままです。"007" のようなコードをテキストとして残すには、YAML で引用符で囲んでください。