YAML バリデーター

YAMLの構文をオンラインで検証。行番号・列番号付きの詳細なエラーメッセージと、バリデーション成功時の構造プレビューを表示。ブラウザ内で処理・無料。

  • ブラウザ内で処理
  • データはブラウザ外に出ません
  • 無料 · 登録不要
「検証」または Ctrl+Enter(Mac は ⌘+Enter)を押します。有効な YAML は JSON でプレビューします。エラーにはパーサーの理由と、取得できる行・列・スニペットを表示します。文書にエラーがあれば、各文書の結果と取得できる行範囲を示します。 「クリア」は入力、ステータス、エラー、プレビュー、精度の注記を空にします。このツール内にフォーカスがあれば Ctrl+L(Mac は ⌘+L)も同じ操作です。
YAML 文書を 1 つ、または --- で区切って複数貼り付けます。構文だけを検証し、アプリのスキーマや lint ルールは確認しません。編集だけでは再検証しないので、「検証」を押して結果を更新してください。

YAML を検証すると、解析結果や構文エラーがここに表示されます。

例・詳しい説明・よくある質問 実際の出力つきの例、ほかのツールとの違い、よくある質問。

エラー出力の見方

バリデーション失敗時、エラーボックスには以下が含まれます:

  • 理由 — 何が問題かの説明(例:インデント不正、ストリームの予期しない終了)。
  • 行番号・列番号 — 入力中のエラーの正確な位置。
  • スニペット — パーサーが示す前後のコンテキスト。多くの場合、問題の文字を指す ^ が含まれます。

よくある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: 0777777511
time: 12:30"12:30"(文字列)750

YAML 1.1 のパーサーでも読まれるファイルでは、"NO"、"yes"、"0777" のような値を引用符で囲みます。

よく出るエラーメッセージ

入力バリデーターのメッセージ
message: Error: something went wrongbad 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-31

    JSON プレビューでは次の値を元のとおりに表示できません:/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の内容はお使いのデバイスから外に出ることはありません。