最低限押さえておきたい YAML の読みかた・書きかた

YAML について、最初にこの記事の内容さえ押さえておけば、
後は使いながら、わからないことを都度調べて勉強していけば大丈夫でしょう。
これから YAML を使い始めるのに最低限必要な内容に絞って解説します。

YAML とは

YAML とは何らかのデータを表すための記法で、
データ同士の関連性をシンプルに表現できます。

「キー」と「値」

YAML の表現の中で、次の形式の表現をよく見ることになります:

(値の意味を識別する情報): (値)

この、(値の意味を識別する情報) のことは
一般的に「キー」とか「属性」と呼ばれます。
以降は「キー」と表現します。

(キー): (値)

具体例を見てみましょう。
次のデータを YAML 形式で表現することを考えてみます:

キー
place東京
weather晴れ

これは、次のように表せます:

place: 東京
weather: 晴れ

複数の値を定義したいとき(シーケンス)

例えば、次のようなデータを YAML 形式で表現することを考えてみます:

キー
place東京
weather晴れ
park新宿御苑、お台場海浜公園、代々木公園、南池袋公園

複数の値を表現したい場合は、
次のように表してしまうと、データとしては 1 つの文字列になっていまいます:

place: 東京
weather: 晴れ
# ↓ ひとつの文字列になってしまいます
park: 新宿御苑、お台場海浜公園、代々木公園、南池袋公園

次のように、改行して各値に “- ” を付けて表すと、複数の値として表現できます:

place: 東京
weather: 晴れ
park:
  - 新宿御苑
  - お台場海浜公園
  - 代々木公園
  - 南池袋公園

または、次のように “[]” と “,” を使っても同じ内容を表現できます:

place: 東京
weather: 晴れ
park: [新宿御苑, お台場海浜公園, 代々木公園, 南池袋公園]

このような表現方法を 「シーケンス」 と言います。

値をさらにキーと値で定義したいとき(マッピング)

例えば、次のようなデータを YAML 形式で表現することを考えてみます:

キー
place東京
weathertoday晴れ
tomorrowくもり

このように 1 つのキーに、さらにキーと値を定義したい場合は
次のように字下げを行うと、キーの値として、キーと値の組み合わせを定義できます:

place: 東京
weather:
  today: 晴れ
  tomorrow: くもり

このような表現方法を 「マッピング」 と言います。

シーケンスのマッピング

例えば、次のような 3 つのデータを一度に扱いたいときのことを考えます:

キー
place東京
weather晴れ
キー
place愛知
weatherくもり
キー
place大阪
weather

このとき、次のように同じキーを何度も定義することはできません:

# 同じキーを何度も定義するのは不正な記法です
place: 東京
weather: 晴れ
place: 愛知
weather: くもり
place: 大阪
weather: 雨

次のように、各データの最初のキーの前の行に “-” を置き、
各マッピングを字下げして定義します:

- 
  place: 東京
  weather: 晴れ
- 
  place: 愛知
  weather: くもり
- 
  place: 大阪
  weather: 雨

上記のように定義すると、「シーケンスのマッピング」として定義したことになり、
3 つのマッピングのデータを一度に扱うことができます。

参考: 2.1. Collections | YAML Ain’t Markup Language (YAML™) Version 1.2

行を節約するために、
次のように、各マッピングの最初のキーの前に “- ” を置いても同じ内容を表現できます:

- place: 東京
  weather: 晴れ
- place: 愛知
  weather: くもり
- place: 大阪
  weather: 雨

参考: 配列とハッシュのネスト | プログラマーのための YAML 入門 (初級編)

わからない記法が出てきたら

例えば次のようなサイトが参考になります:

プログラマーのための YAML 入門 (初級編)

YAML を書くときは Visual Studio Code を使おう

Visual Studio Code に
Red Hat さんが公開している YAML 拡張機能をインストールすると、
書式の誤りをいち早く検出して指摘してくれるので生産性が向上します。

RED HAT YAML 拡張機能のインストール
RED HAT YAML 拡張機能のインストール
Visual Studio Code 上での YAML の文法チェック
Visual Studio Code 上での YAML の文法チェック
タイトルとURLをコピーしました