YAML→JSON変換
YAMLファイルを正しいJSONに変換します。
ブラウザ内で動作します。入力した内容はどこにも送信されません。
- 複数ドキュメントのファイルに対応
- エラー箇所を正確に表示
- アップロードなし
YAMLをJSONに変換する方法
- YAMLを貼り付けるか.yamlや.ymlファイルをアップロードします。
- 表示された行と列のエラーを修正します。
- JSONをコピーまたはダウンロードします。
例:YAMLを入力、JSONを出力
| YAMLの行 | JSON |
|---|---|
| name: Sam | "name": "Sam" |
| age: 30 | "age": 30 |
| active: true | "active": true |
| tags: [a, b] | "tags": ["a", "b"] |
このツールが保持するYAMLの機能
- アンカー(&name)とエイリアス(*name)は、参照先の値の完全なコピーに展開されます。
- インラインの{a: 1}や[1, 2]のようなフロースタイルも、同等のブロックスタイルと同じように解析されます。
- 3つのハイフンの行で区切られた複数のドキュメントは、順番通りに1つのJSON配列になります。
- #で始まるコメントは、JSONにコメント構文がないため削除されます。
よくあるYAMLエラー
| 症状 | 考えられる原因 |
|---|---|
| インデントエラー | タブ文字、または前の行から1スペースずれたインデント |
| ストリームの予期しない終了 | 前の方でクォートや括弧が閉じられていない |
| 値が意図せずtrueやfalseになる | クォートなしで書かれたyes、no、on、off |
YAML→JSONが役立つ場面
- Kubernetesマニフェストの正確な値を、スクリプトがすでに理解できる形式で読み取る。
- 生のインデントではなく解析後の構造を見て、CIパイプラインファイルをデバッグする。
- JSONしか受け付けないツールやAPIに、YAML設定を渡す。
YAML→JSONのFAQ
1つのファイルに複数のYAMLドキュメントがある場合はどうなりますか?
3つのハイフンの行で区切られた各ドキュメントがそれぞれ変換され、順番通りに1つのJSON配列としてまとめて返されます。
インデントエラーが出るのはなぜですか?
YAMLはインデントから構造を読み取るため、1スペースずれた行やスペースの代わりのタブがあると壊れます。エラーには行と列が示され、「エラー箇所へジャンプ」でそこを選択できます。
アンカーとエイリアスに対応していますか?
はい。アンパサンドのアンカーで印を付けた値は、アスタリスクのエイリアスで再利用されたすべての場所にコピーされます。
日付はどうなりますか?
JSONには日付型がないため、2024-05-01のような日付はテキストとして保持されます。
インデントにタブを使ったYAMLも貼り付けられますか?
いいえ。YAMLはインデントにスペースを必要とするため、タブがあるとその行でインデントエラーになります。スペース2つに置き換えてもう一度試してください。
YAMLマップ内の重複キーはどうなりますか?
内部のパーサーがJSONに変換する前にマップを解決する仕組み上、繰り返されたキーは最後に書かれた値が優先されます。
他のファイルをincludeするYAMLファイルも変換できますか?
いいえ。一部のYAMLプロセッサが使う!includeのようなカスタムタグは、このブラウザツールにはないファイルシステムへのアクセスを必要とします。カスタムタグのない通常のYAMLは問題なく変換されます。
!!strや!!intのような明示的な型タグにも対応していますか?
はい。よく使われる明示的なタグは、値の形から推測するのではなく、そのタグに対応するJSONの型として読み取られます。