使い方
- JSONをJSONのテキストに貼り付けます。
- インデントを選びます。YAMLファイルには、スペース2つが一般的な選択です。
- 妥当性を読みます。行と列が示されたら、まずそのJSONを直してください。
- YAMLのテキストをコピーするか、data.yamlとしてダウンロードします。
JSONがYAMLになる仕組み
YAML 1.2の仕様は、YAMLをJSONの厳密な上位集合にすることを目指しています。そのため、JSONのテキストは有効なYAMLのデータです。変換は同じデータを保ち、書き方だけを変えます。オブジェクトは「名前: 値」の行になり、配列は各項目の前にダッシュを付けたリストになり、入れ子は括弧ではなくインデントで示されます。
- 文字列、数値、true、false、nullは、値を保ちます。"true"や"123"のように、YAMLが別の型として読んでしまう文字列は、文字列のままになるよう引用符で囲まれます。
- 2026-11-10のような日付は、YAML 1.2では日付として読まれないため、普通の文字として残ります。yesやonも文字のままです。YAML 1.2が真偽値として読むのはtrueとfalseだけだからです。
数値、名前、複数行の文字
整数はすべての桁を保ちます。12345678901234567890は入力どおりに書かれます。小数はJavaScriptの最も近い数として書かれるため、1.50は同じ値の1.5になります。約15桁を超える有効数字を持つ小数は、最後の桁が変わることがあります。
名前はJSONでの順序を保ちます。JavaScriptのオブジェクトでは先頭に動いてしまう2024のような名前も含みます。改行を含む文字列はブロックとして書かれるため、各行はそれぞれの行に残ります。
計算例:初期値のJSON
初期値のJSONは、name、free、tags、version、licenseの5つの名前を持つ1つのオブジェクトです。tagsの下の配列は、YAMLのリストになり、各項目の前にダッシュと2つのスペースが付きます。
スペース2つのインデントでは、結果は表の8行になり、同じデータとして読み戻せます。
| 行 | 書き出されるYAML |
|---|---|
| 1 | name: FireToolLand |
| 2 | free: true |
| 3 | tags: |
| 4 | - json |
| 5 | - csv |
| 6 | - yaml |
| 7 | version: 2.1 |
| 8 | license: null |
よくある質問
YAMLはJSONと同じですか?
完全に同じではありませんが、YAML 1.2の仕様は、YAMLをJSONの厳密な上位集合にすることを目指しています。そのため、変換の後もデータは保たれます。YAMLは括弧ではなくインデントを使うため、人が手で読みやすくなります。
YAMLの一部の文字列が引用符で囲まれているのはなぜですか?
"true"、"123"、"null"のように、YAMLが別の型として読んでしまう文字列は、文字列のままであるよう引用符で囲まれます。ほかの文字列は、引用符なしで普通に書かれます。
数値は変わりますか?
整数はすべての桁を保つため、12345678901234567890は変わりません。小数は最も近い数として書かれるため、1.50は同じ値の1.5になります。
インデントはなぜ2つか4つのスペースなのですか?
YAMLは入れ子をタブではなくスペースで示します。2つのスペースは短いファイル、4つのスペースは広いファイルになります。どちらも同じデータとして読み戻せるため、プロジェクトが使う書き方を選んでください。
1つのオブジェクトに同じ名前が2回あるとき、なぜ受け付けないのですか?
YAMLのマッピングは、名前ごとに1つの値しか持てないため、2つ目の値は警告なしに失われます。ツールは、残す値を推測するのではなく、重複する名前を削除するよう求めます。
JSONはどこかにアップロードされますか?
いいえ。変換はyamlライブラリを使ってお使いのブラウザの中で行われ、貼り付けた内容は当サイトのサーバーに送られません。
出典
- YAML Ain't Markup Language(YAML)リビジョン1.2.2(英語)
- RFC 8259:JavaScript Object Notation(JSON)データ交換形式(英語)
- yaml:このツールが使うJavaScriptのYAMLライブラリ(英語)
数値と文章の最終確認日:2026年11月10日火曜日。