🍇

YAMLの基本

2022/03/26に公開

基本事項

・行頭に「#」はコメントです。

リスト(配列)

・ハイフン「-」は配列の開始です。
・同一インデントは同じ配列に入ります

例:

array:
  - 1
  - 2
  - key: value

結果:

{
  "array": [
    1, 
    2, 
    {
      "key": "value"
    }
  ]
}

ハッシュ(連想配列)

・キー名はスペースを含むことができます。
・キーはコロン「:」の後にスペースか、改行が必要です。
・インデントが同じ場合は「兄弟」、異なる場合は「親子」になります。

例:

family:
  parent:
    me:
     child: "child"
    sibling: "sibling"

結果:

{
  "family": {
    "parent": {
      "me": {
        "child": "child"
      }, 
      "sibling": "sibling"
    }
  }
}

文字列、論理値、整数、浮動小数点があります

文字列

例:

# nullになる
str1: null
str2:

# 空になる
str3: ""

結果:

{
  "str3": "", 
  "str2": null, 
  "str1": null
}

論理値

例:

true: [ true, True, TRUE ]
false: [ false, False, FALSE ]

整数と浮動小数点

例:

int: [ 0, 0x10, -123]
float: [1. , 3.14, -1.23, .123]
inf: [ .inf, -.Inf, +.INF ]
nan: [ .NAN ]

結果:

{
  "int": [
    0, 
    16, 
    -123
  ], 
  "inf": [
    Infinity, 
    -Infinity, 
    Infinity
  ], 
  "float": [
    1.0, 
    3.14, 
    -1.23, 
    0.123
  ], 
  "nan": [
    NaN
  ]
}

シンプルスカラー

キーの直後の値、もしくはキーの次の行から各行をインデントすることで一つの値とします。

例:

key1: value
key2: 
  abcd
  efg

結果:

{
  "key2": "abcd efg", 
  "key1": "value"
}

複数行の値

・値の最初が「|」の場合は「リテラルスカラー」となり、次の行以降、
次の項目までの各行が改行付きで入ります
・値の最初が「>」の場合は「折りたたみスカラー」となり、次の行以降、
次の項目までの各行が改行なしで入ります

仕様

https://yaml.org/spec/1.2.2/
https://yaml.org/spec/1.0/index.html
https://yaml.org/spec/history/2001-12-10.html

オンラインパーサ

http://yaml-online-parser.appspot.com/

yq

jqのyaml版

yq: Command-line YAML/XML/TOML processor - jq wrapper for YAML, XML, TOML documents
https://kislyuk.github.io/yq/

Discussion