YAML (YAML Ain’t Markup Language) は人間が読み書きしやすいデータ形式で、主に設定ファイルやデータ交換、データの永続化などに使われます。以下にYAMLを書く際の主なポイントを示します。
インデント
YAMLではデータの階層構造をインデント(スペース)で表現します。タブは使用せず、一貫したスペースの数(通常は2または4)を使用してください。インデントが不適切な場合、YAMLは意図した通りにパースされない可能性があります。
キーと値
YAMLでは、key: value の形式でデータを表現します。コロンの後には必ずスペースを1つ入れます。
リスト
リストはダッシュ(-)を使って表現します。ダッシュの後にはスペースを1つ入れます。
fruits:
- Apple
- Banana
- Orange辞書
キーと値のペアを使って辞書(マップ)を作成します。インデントを使用して階層構造を示します。
person:
name: John Doe
age: 30文字列
一般的に、文字列をクォートする必要はありません。ただし、特殊文字を含む文字列や数値と誤解される可能性のある文字列はクォートすることをお勧めします。
マルチライン文字列
| と > を使ってマルチラインの文字列を作成することができます。| は新しい行を保持し、> は新しい行をスペースに置き換えます。
multiline_string: |
This is a very long string
that spans several lines in the YAML
but will be interpreted as a single string.コメント
# はコメント行を作成します。行の任意の場所に配置できます。
データ型
YAMLはさまざまなデータ型をサポートしています。これには、スカラー型(文字列、整数、浮動小数点数、真偽値)、シーケンス型、マッピング型が含まれます。
YAMLを書く際は、特にインデントとデータ構造を正しく表現することに注意を払うことが重要です。また、YAMLの文法には多くの洗練された要素があるため、YAMLを初めて使用する場合は公式ドキュメンテーションまたは信頼できるチュートリアルを参照することをお勧めします。
補足(>と|の違い)
YAMLでは、 > を使用して複数行の文字列を定義することができます。> の後に続く複数行の文字列は、最終的な文字列では単一のスペースによって区切られます。つまり、改行は無視され、スペースに置き換えられます。
ここに具体的な例を示します:
description: >
This is a very long sentence
that spans several lines in the YAML
but will be interpreted as a single
sentence with spaces between the words.この YAML は以下のように解釈されます:
description: This is a very long sentence that spans several lines in the YAML but will be interpreted as a single sentence with spaces between the words.つまり、 > を使用すると、YAMLファイル内で見やすい形で複数行に分けて文字列を書くことができ、それが最終的には単一の行にまとめられます。
なお、 | を使うと、改行も含むままの形で複数行の文字列を定義することができます。この違いには注意してください。