yamlとは

YAML (YAML Ain't Markup Language) は、構造化されたデータを記述するための軽量なマークアップ言語です。YAMLを複数行書きするには、それぞれの値の前にハイフン「-」をつけることで、複数行に渡って値を書くことができます。

例えば、次のようなYAMLファイルを考えます。

name: John
age: 35

このYAMLファイルは、「name」というキーに「John」という値、「age」というキーに「35」という値が割り当てられています。このYAMLファイルを、複数行に渡って書くこともできます。例えば、次のように書くことができます。

name:
  - John
  - Doe
age:
  - 35
  - 40

このように、YAMLを複数行に渡って書くには、値の前にハイフンをつけることで配列を表現します。

「>」を使用した場合、改行は含まれませんが、スペースが除去されます。つまり、改行を含むテキストをそのまま表現することができませんが、スペースを除去して表現することができます。例えば、次のようなYAMLファイルを考えます。

description: >
  This is a description. It contains multiple lines of text.

このYAMLファイルでは、「description」というキーに、「This is a description. It contains multiple lines of text.」という文字列が割り当てられています。「>」を使用した場合、文字列の中に改行が含まれていても、文字列として表示されます。

「|」を使用した場合、改行がそのまま反映されます。つまり、改行を含むテキストをそのまま表現することができます。例えば、次のようなYAMLファイルを考えます。

description: |
  This is a description.
  It contains multiple lines of text.

このYAMLファイルでは、「description」というキーに、「This is a description. It contains multiple lines of text.」という文字列が割り当てられています。

他の形式との違い

YAML、JSON、TOMLは、構造化されたデータを記述するための3つの軽量なマークアップ言語です。それぞれの特徴をまとめると次のようになります。

  • YAML (YAML Ain't Markup Language)
    • 人間が読み書きしやすい構文
    • プログラミング言語やプラットフォームに依存しない
    • 複雑なデータ構造を表現できる
  • JSON (JavaScript Object Notation)
    • JavaScriptで使用される構文
    • プログラミング言語やプラットフォームに依存しない
    • 簡潔で高速な読み書きが可能
  • TOML (Tom's Obvious, Minimal Language)
    • データをキーと値の組み合わせで表現する
    • プログラミング言語やプラットフォームに依存しない
    • 読み書きが高速で、シンプルな構文

YAML、JSON、TOMLは、それぞれに特徴がありますが、構造化されたデータを記述するためのマークアップ言語として、同じような役割を果たします。