無料オンラインYAML整形・検証ツール
ブラウザ内でYAMLを整形、検証、美しく表示し、YAMLとJSONを相互変換できます。Docker Compose、Kubernetes、GitHub Actionsの設定に対応し、データはサーバーへ送信されません。
解析と変換はすべてブラウザ内で行われます。YAMLとJSONがアップロード、保存、記録されることはありません。
YAMLとは?
YAML(YAML Ain't Markup Language)は、人が読み書きしやすいよう設計されたデータシリアライズ形式です。簡潔なインデントベースの構文により、多くの現代的な設定ファイルでXMLに代わって使われ、Docker Compose、Kubernetes、GitHub Actions、Ansible、Helmなどを支えています。YAMLはJSONのスーパーセットでもあるため、有効なJSON文書はすべて有効なYAML文書です。このため、一般的な設定データでは両形式を簡単かつほぼ損失なく変換できます。
YAML構文ガイド
| key: value | スカラー — 単純なkey/value pairです。複数行文字列には|(literal、改行を保持)または>(folded、行を結合)を使います。 |
| - item | リスト — 各項目を別の行に置き、先頭へdashとspaceを付けます。 |
| parent: child: x | ネストした辞書 — インデントだけで階層を表現します。 |
| # comment | コメント — #以降はparserに無視されます。 |
| null / true / false | 特殊値 — null、true、falseは文字列ではなく型付き値として認識されます。 |
| &anchor / *alias | アンカーとエイリアス — &anchorでnodeを一度定義し、*aliasで再利用します。 |
重要:YAMLのインデントにはtabを使えず、spaceだけを使用します。tabが1つでもあると文書全体が無効になります。
YAMLとJSON:どちらを使うべきか
YAML
手動で作成・編集する設定ファイルにはYAMLを使います。コメントに対応し、読みやすく、Docker Compose、Kubernetes、GitHub Actions、Ansible、Helmの標準形式です。
JSON
APIや転送中のデータにはJSONを使います。解析が速く、型の曖昧さがなく、REST APIs、package.json、tsconfig.jsonで使われる形式です。
よくあるYAMLエラーと修正方法
- インデントにspaceではなくtabを使用している — YAMLではtabが禁止されているため、すべてのtabをspaceへ置き換えてください。
- インデントが不統一 — 文書全体で各ネスト階層のspace数を統一してください。
- colonを含む文字列が引用符で囲まれていない — "12:30"や"http://example.com"のような値はquotesで囲みます。
- booleanが曖昧 — yes、no、on、offなどはtrue/falseとして解析されます。文字どおりの単語として使う場合はquotesで囲みます。
- 値に特殊文字があるのに引用符で囲まれていない — @、#、{などを含む値はquotesで囲んでください。
よくある質問
いいえ。YAMLはインデントへのtab文字使用を厳格に禁止しており、spaceを使う必要があります。これは「invalid YAML」エラーの最も一般的な原因の1つです。editorがtabを挿入する場合は、tabをspaceへ変換するよう設定してください(通常は階層ごとに2 spaces)。このページのformatterは常にspaceを出力するため、ファイルを通すだけで誤って入ったtabを自動修正できます。
どちらも複数行文字列を開始しますが、改行の扱いが異なります。literal block scalarの|は記述どおりに改行を保持するため、各行が独立したままになり、scriptsや整形済みtextに適しています。folded block scalarの>は行をspaceで結合し、空行を段落区切りとして扱いながらblockを1行へまとめます。sourceでは折り返し、保存時は1行にしたい長文に便利です。
はい。YAML 1.2以降、有効なJSON文書はすべて有効なYAML文書です。YAMLのflow syntaxがJSONと同じbraces、brackets、quoting rulesを使うためです。JSONをそのままYAML parserへ貼り付けても動作し、両形式間を確実に変換できます。このページのYAML-to-JSONとJSON-to-YAML tabsが行っている処理もこれです。
YAML parserはyes、no、on、off、true、falseなど複数の単語をboolean valuesとして解釈します。そのためquotesなしのscalar yesはboolean trueとして読み取られ、JSONでもその形でserializeされます。文字列"yes"が必要な場合(country codeや回答欄など)は、answer: "yes"のようにquotesで囲んでください。これによりparserはbooleanへ変換せずtextとして保持します。