YAMLフォーマッター&バリデーター

YAMLをオンラインでフォーマット、検証、整形できます。行番号付きで構文エラーを即座にハイライト表示。無料でブラウザ上で完結。

使い方

  1. 入力エリアにYAMLを貼り付けます
  2. 「フォーマット&検証」をクリックして整形と構文チェックを行います
  3. YAMLが無効な場合、エラーメッセージに正確な行番号と問題が表示されます
  4. インデントセレクターで出力のインデントを調整できます
  5. 「コピー」で整形結果をコピーするか、「クリア」でリセットします

よくある質問

  • YAMLの検証とは何ですか?

    YAML検証とは、ドキュメントが正しいYAML構文に従っているか(適切なインデント、重複キーなし、有効なデータ型、特殊文字の正しい使用)を確認することです。

  • フォーマットするとデータが変わりますか?

    いいえ。フォーマットは空白とインデントのみを変更します。データ構造と値はまったく変わりません。

  • YAMLの一般的な構文エラーにはどんなものがありますか?

    よくあるエラーには、インデントの不一致(タブとスペースの混在)、キーの後のコロン欠落、: や # などの特殊文字を含む未引用文字列、重複キーなどがあります。

  • 入力したYAMLはサーバーに送信されますか?

    いいえ。すべてのフォーマットと検証は、js-yamlライブラリを使用してブラウザ上で完全に処理されます。データがデバイス外に出ることはありません。

  • YAMLとJSONの違いは何ですか?

    YAMLはJSONのスーパーセットで、コメント、複数行文字列をサポートし、記述量が少なくて済みます。JSONは波括弧と引用符を使いますが、YAMLはインデントを使います。YAMLは設定ファイルに、JSONはAPIによく使われます。

YAMLとは何か

YAML(YAML Ain't Markup Language)は、人間が読み書きしやすいデータシリアライゼーション形式です。2001年にClark Evans、Ingy döt Net、Oren Ben-Kiwiによって設計されました。現在はYAML 1.2が最新の仕様で、有効なJSONはすべて有効なYAMLでもあります。

YAMLの基本文法

YAMLはインデント(スペース)を使って構造を表現します。タブ文字は使用できず、インデントのズレが構文エラーの最多原因です。

# コメントはシャープで記述
name: 山田太郎
age: 30
address:
  city: 東京
  zip: "100-0001"  # 数字っぽい文字列は引用符で囲む
tags:
  - developer
  - backend

YAMLとJSONの対応関係

同じデータ構造をYAMLとJSONで表現すると、YAMLの簡潔さがよくわかります。

YAML

database:
  host: localhost
  port: 5432
  name: myapp

同等のJSON

{
  "database": {
    "host": "localhost",
    "port": 5432,
    "name": "myapp"
  }
}

YAMLは波括弧、引用符、カンマが不要なため、記述量が少なくなります。

よくある構文エラーとその原因

インデントの不一致

YAMLで最も多いエラーです。同じレベルの項目は同じ数のスペースでインデントしなければなりません。スペースとタブを混在させると必ずエラーになります。

特殊文字の未クォート

次の値を引用符なしで書くと意図しない型変換が起こります:

  • yes / no → ブール値(true / false)として解釈される場合あり(YAML 1.1)
  • 1.0 → 数値として解釈
  • null → null値
  • 2024-01-15 → 日付オブジェクトとして解釈される場合あり

文字列として扱いたい場合は引用符(シングルまたはダブル)で囲みましょう。

重複キー

YAMLは仕様上、同一マッピング内での重複キーを禁止していますが、多くのパーサーは警告を出さずに後の値で上書きします。バリデーターを使って早期に検出することが重要です。

YAMLが使われる場面

YAMLは設定ファイルの標準フォーマットとして多くのツールで採用されています:

  • Kubernetes:マニフェストファイル(Pod、Deployment、Serviceなど)
  • GitHub Actions / GitLab CI:CI/CDパイプラインの定義
  • Docker Compose:コンテナ構成ファイル
  • Ansible:インフラ自動化のPlaybook
  • Ruby on Rails:設定ファイル(database.ymlなど)

これらのツールを使う開発者にとって、YAMLの正確な文法理解とバリデーションは必須スキルです。