🍇
YAMLの基本
基本事項
・行頭に「#」はコメントです。
リスト(配列)
・ハイフン「-」は配列の開始です。
・同一インデントは同じ配列に入ります
例:
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"
}
複数行の値
・値の最初が「|」の場合は「リテラルスカラー」となり、次の行以降、
次の項目までの各行が改行付きで入ります
・値の最初が「>」の場合は「折りたたみスカラー」となり、次の行以降、
次の項目までの各行が改行なしで入ります
仕様
オンラインパーサ
yq
jqのyaml版
yq: Command-line YAML/XML/TOML processor - jq wrapper for YAML, XML, TOML documents
Discussion