YAML バリデーター
YAMLの構文をオンラインで検証。行番号・列番号付きの詳細なエラーメッセージと、バリデーション成功時の構造プレビューを表示。ブラウザ内で処理・無料。
- ブラウザ内で処理
- データはブラウザ外に出ません
- 無料 · 登録不要
WeChat でスキャンしてシェア
例・詳しい説明・よくある質問 実際の出力つきの例、ほかのツールとの違い、よくある質問。
エラー出力の見方
バリデーション失敗時、エラーボックスには以下が含まれます:
- 理由 — 何が問題かの説明(例:インデント不正、ストリームの予期しない終了)。
- 行番号・列番号 — 入力中のエラーの正確な位置。
- スニペット — パーサーが示す前後のコンテキスト。多くの場合、問題の文字を指す
^が含まれます。
よくあるYAML構文エラー
- インデントの不統一 — YAMLはネストにスペースのみを使用します(タブは禁止)。同じレベルで2スペースと4スペースを混在させると解析エラーになります。
- キーの後のコロン欠如 —
key valueは無効です。key: valueと記述する必要があります。 - 特殊文字のクォートなし使用 — 値に
:・#・[・]・{・}などを含む場合は、クォートで囲むかエスケープする必要があります。 - タブ文字 — YAMLのインデントにタブは使用できません。すべてスペースに置き換えてください。
- 重複キー — 同じマッピングブロック内の重複キーは、YAML 1.2仕様では技術的に無効です。
例:正しいYAML
server:
host: localhost
port: 8080
tls: true
database:
driver: postgres
name: myapp
credentials:
user: admin
password: "s3cr3t"
allowed_origins:
- https://example.com
- https://api.example.com
例:不正なYAML(インデントエラー)
server:
host: localhost
port: 8080 # エラー:余分なスペースでインデントが不統一
バリデーターは不整合が検出された行番号と列番号を報告するため、問題を素早く特定して修正できます。
構文が正しくても構造が正しいとは限らない
バリデーターが報告するのは構文エラーです。解析できる YAML でも構造が意図と違うことがあるので、「解析結果」のプレビューを確認してください。次のファイルでは carrot のインデントが 2 つ足りません。
fruits:
- apple
vegetables:
- carrot
- spinach
結果は「YAML は有効です」で、プレビューは "vegetables": ["carrot - spinach"] になります。次の行が carrot に連結され、1 つの文字列になっています。
YAML 1.1 と 1.2 で値の解釈が違う
このツールは YAML 1.2 準拠の js-yaml 4.3.2 を使います。Python でよく使う PyYAML は YAML 1.1 準拠です。同じファイルでも結果が変わります。
| YAML | このツール(js-yaml 4.3.2) | PyYAML 6.0.3 safe_load |
|---|---|---|
debug: yes | "yes"(文字列) | True |
country: NO | "NO"(文字列) | False |
octal: 0777 | 777 | 511 |
time: 12:30 | "12:30"(文字列) | 750 |
YAML 1.1 のパーサーでも読まれるファイルでは、"NO"、"yes"、"0777" のような値を引用符で囲みます。
よく出るエラーメッセージ
| 入力 | バリデーターのメッセージ |
|---|---|
message: Error: something went wrong | bad indentation of a mapping entry(1:15)。値を引用符で囲む |
host: の前にタブ | tab characters must not be used in indentation |
同じマッピングに timeout が 2 回 | duplicated mapping key |
server のコロン抜け、次の行がインデント | end of the stream or a document separator is expected |
制限事項
-
複数ドキュメントは 1 つずつ検証します。
---で区切ったファイル(Deployment と Service を含む Kubernetes マニフェストなど)は js-yaml のloadAllで読み込みます。すべて有効ならプレビューはドキュメントごとに 1 要素の JSON 配列です。エラーがあると各ドキュメントを行範囲付きで並べ、有効かエラー内容かを示すので、壊れた Service があっても有効な Deployment は確認できます。 -
構文チェックのみ。 Kubernetes、GitHub Actions、Docker Compose のスキーマ検証や lint ルールは行いません。CI では yamllint(
yamllint .)を使います。 -
プレビューは JSON。 アンカーと
<<マージキーは展開済みで、コメントは表示されません。JSON で元のとおりに表せない値はプレビューの上に JSON Pointer のパス付きで示し、YAML は有効と判定したままです。次の YAML はsize: .inf id: 9007199254740993 due: 2026-02-31JSON プレビューでは次の値を元のとおりに表示できません:/size:inf は JSON で表せません(JSON.stringify は null と書きます);/id:整数 9007199254740993 は ±(2^53 − 1) を超えるため、JavaScript では丸められます;/due:2026-02-31 は有効な日付・時刻ではありませんと表示します。プレビューのその位置はnull、9007199254740992、"2026-03-03T00:00:00.000Z"になっているので、元データとしてコピーしないでください。プレビューは負のゼロを-0.0と書き、タイムスタンプを UTC で表示します(2026-10-01T09:30:00+09:00は"2026-10-01T00:30:00.000Z"になります)。 -
js-yaml の処理上限。 js-yaml 4.3.2 は、ネストが 100 階層を超える文書、マージキー(
<<)で処理するマッピングとキーが合計 10,000 個を超える文書、1 つのマージキーに 100 個を超えるマッピングを並べた文書を止めます。エラーには「コレクションのネストが 100 階層を超えています(js-yaml の既定の上限)」のように上限と行・列が出ます。
FAQ
YAMLバリデーターは何をチェックしますか?
YAML 1.2準拠のjs-yamlパーサーを使用して構文エラーをチェックします。インデントミス・不正な文字・重複キー・コロン欠如など、あらゆる不正なYAMLを検出し、正確な行番号と列番号で報告します。
YAML→JSON変換ツールとの違いは何ですか?
変換ツールは入力が正しいことを前提に変換を行いますが、バリデーターはYAMLの構文が正しいかどうかを検証し、問題を修正するための詳細なエラー情報を提供します。このツールは「YAMLの構文を診断・修正する」ユースケース向けです。
「解析済み構造」プレビューとは何ですか?
YAMLが正しい場合、ツールはデータをJSONとして解析し、整形されたJSON形式で表示します。期待通りの構造になっているか視覚的に確認でき、JSON形式でコピーして別の場所でも活用できます。.inf、±(2^53 − 1) を超える整数、2026-02-31 のような存在しない日付など JSON で元のとおりに表せない値は、プレビューの上にパス付きで示します。
どのYAML仕様がサポートされていますか?
js-yaml 4.xを使用しており、YAML 1.2仕様に準拠しています。アンカー・エイリアス・複数行文字列・ブロック/フローシーケンス・明示的型タグなど、一般的なYAML構文をサポートしています。--- で区切った複数ドキュメントのファイルは loadAll で読み込み、ドキュメントごとに結果を出します。
YAMLデータはサーバーに送信されますか?
いいえ。検証はすべてブラウザ内でJavaScriptにより実行されます。YAMLの内容はお使いのデバイスから外に出ることはありません。