技術メモ

神奈川在住のITエンジニアの備忘録。おもにプログラミングやネットワーク技術について、学んだことを自分の中で整理するためにゆるゆると書いています。ちゃんと検証できていない部分もあるのでご参考程度となりますが、誰かのお役に立てれば幸いです。

yaml ファイル内のハイフン

先日、yaml ファイルを扱う機会があった時、

person:
 - id: 1
   name: xxx
   address: yyy

nextItem: zzz

と、

person:
 - id: 1
 - name: xxx
 - address: yyy

nextItem: zzz

の違いについて理解するのに少し時間がかかったので、ここに纏めておく。

Best Online YAML Converter - Convert YAML Strings into JSON, XML, CSV
のサイトで、 上記の yaml ファイル を json 形式に変換してみると、違いが分かりやすい。

一つ目は、

{
	"person": [
		{
			"id": 1,
			"name": "xxx",
			"address": "yyy"
		}
	],
	"nextItem": "zzz"
}

となり、2つ目は、

{
	"person": [
		{
			"id": 1
		},
		{
			"name": "xxx"
		},
		{
			"address": "yyy"
		}
	],
	"nextItem": "zzz"
}

となる。

つまり、yaml ファイルの中にハイフンがあると、それ以降は、次のハイフンかインデントが戻る (少なくなる) まで、一纏まりの key-valueストア=配列の1要素として扱われることになる。