YamlとJsonの比較
2020.01.26
YamlMemo
同じデータをYamlで記述した場合とJsonで記述した場合で比較しました。備忘録です。
目次
-
これは何
最近、AWSのCluodFromationやGithub Actions、Dockerの設定ファイルなど色々なところでYaml形式のデータを見かけることが多くなってきたので、 備忘録としてYaml形式で記述したデータとJson形式で記述したデータを比較しました。
なお、オンライン上でYamlとJsonを変換してくれるツールがあるので、実際に試しながら進めていくと理解が深まりやすいかと思います。
Best Online YAML Converter - Convert YAML Strings into JSON, XML, CSV
yamlとjsonを比較
コメントアウト
yaml
count: 3 # これはコメント
基本型
yaml
count: 3
name: "takigawa"
value: 3.2
boolean: true
json
{
"count": 3,
"name": "takigawa",
"value": 3.2,
"boolean": true
}
シーケンス
yaml
list:
- 3
- takigawa
- 3.2
- true
json
{
"list": [
3,
"takigawa",
3.2,
true
]
}
マップ
yaml
map:
name: "takigawa"
value: 3.2
boolean: true
json
{
"map": {
"name": "takigawa",
"value": 3.2,
"boolean": true
}
}
配列の要素をマップにする
基本的にインデント位置が同じデータは同じキーに属すると考えてよい。
yaml
list:
- name: "bobyama"
value: 3.2
- name: "takigawa"
value: 3
boolean: true
json
{
"list": [
{
"name": "bobyama",
"value": 3.2
},
{
"name": "takigawa",
"value": 3,
"boolean": true
}
]
}
jsonっぽい書き方もできる
yaml
list: ["takigawa", 3.2, true]
map: {name: "takigawa", value: 3.2}
json
{
"list": [
"takigawa",
3.2,
true
],
"map": {
"name": "takigawa",
"value": 3.2
}
}
複数行にすることも可能っちゃ可能っぽい。
yaml
list: ["takigawa",
3.5,
true,
fsdafs,
fdsafd,
null]
map: {name: "takigawa",
value: 3.2}
改行文字を含む文字列
yaml
name: |
takigawa
bobyama
description: >
this
is
description
value: 3.2
key-valueのvalueを | で指定すると、インデントした後の文字列が実際のvalueとして扱われる。
json
{
"name": "takigawa\nbobyama\n",
"description": "this is description\n",
"value": 3.2
}
マップやシーケンスは別名をつけて参照できる
yaml
map: &alias
name: "takigawa"
value: 3.2
boolean: true
map2:
data: *alias
list: &alias2
- item1
- item2
list2:
- *alias2
json
{
"map": {
"name": "takigawa",
"value": 3.2,
"boolean": true
},
"map2": {
"data": {
"name": "takigawa",
"value": 3.2,
"boolean": true
}
},
"list": [
"item1",
"item2"
],
"list2": [
[
"item1",
"item2"
]
]
}
マップをマージする
yaml
map: &map
name: takigawa
value: 3.2
map2:
name: bobyama
count: 3
<<: *map
json
{
"map": {
"name": "takigawa",
"value": 3.2
},
"map2": {
"name": "bobyama",
"count": 3,
"value": 3.2
}
}
参考リンク
コメント
この記事のコメントを読み込み中です
投稿する
@
ログインしてコメントを投稿