yaml与json的对比
json
适用于现代 C++ 的 JSON。
项目地址:https://gitcode.com/gh_mirrors/js/json
免费下载资源
·
example1
yaml中数组元素以-开头, 每个元素前面都有-. json数组用[ ]围起来
yaml格式
- name
- name
json格式
[
"name",
"name"
]
example2
数组中包含对象的写法.yaml的对象无需{}
yaml格式
- name: jobE
- name: jobD
json格式
[
{
"name":"jobE"
},
{
"name":"jobD"
}
]
example3
对象可以有多个键值对,既然是对象,当然可以有很多属性与值,就是很多组键值对.yaml对象不同键值对之间无需逗号分割. 当然,在这里对象是匿名的,因为没有给对象起名字.
yaml
- name: jobE
type: command
- name: jobD
type: command
JSON 对象被花括号 {} 包围。
JSON 对象以键/值对书写。
键必须是字符串,值必须是有效的 JSON 数据类型(字符串、数字、对象、数组、布尔或 null)。
键和值由冒号分隔。
每个键/值对由逗号分隔
json
[
{
"name":"jobE",
"type":"command"
},
{
"name":"jobD",
"type":"command"
}
]
example4
如果对象的值还是一个键值对,那么就会导致嵌套.
yaml
- name: jobE
type: command
config:
command: echo "This is job E"
- name: jobD
type: command
config:
command: echo "This is job E"
json
一个 JSON 对象中的值可以是另一个 JSON 对象。
[
{
"name":"jobE",
"type":"command",
"config":{
"command":"echo \"This is job E\""
}
},
{
"name":"jobD",
"type":"command",
"config":{
"command":"echo \"This is job E\""
}
}
]
example5 对象的值可以是数组
- name: jobE
type: command
config:
command: echo "This is job E"
dependsOn:
- jobD
- name: jobD
type: command
config:
command: echo "This is job E"
dependsOn:
- jobA
- jobB
- jobC
json
数组可以是对象属性的值,一个对象的属性可能不是单一的,有多个值也很正常.
{
"0":{
"name":"jobE",
"type":"command",
"config":{
"command":"echo \"This is job E\""
},
"dependsOn":[
"jobD"
]
},
"1":{
"name":"jobD",
"type":"command",
"config":{
"command":"echo \"This is job E\""
}
},
"dependsOn":[
"jobA",
"jobB",
"jobC"
]
}
example6 可以是多层嵌套
yaml
nodes一个对象的key.然后其值是个数组.数组中有2个匿名对象,每个匿名对象又有4个键值对.
nodes:
- name: jobE
type: command
config:
command: echo "This is job E"
# jobE depends on jobD
dependsOn:
- jobD
- name: jobD
type: command
config:
command: echo "This is job D"
# jobD depends on jobA、jobB、jobC
dependsOn:
- jobA
- jobB
- jobC
json
{
"nodes":[
{
"name":"jobE",
"type":"command",
"config":{
"command":"echo \"This is job E\""
},
"dependsOn":[
"jobD"
]
},
{
"name":"jobD",
"type":"command",
"config":{
"command":"echo \"This is job D\""
},
"dependsOn":[
"jobA",
"jobB",
"jobC"
]
}
]
}
总结
- yaml靠缩进表示层级关系
- json数组用[],对象用{}
- yaml和json可以相互转换
- 阅读起来yaml比json容易一些
GitHub 加速计划 / js / json
18
5
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:2 个月前 )
960b763e
5 个月前
8c391e04
8 个月前
更多推荐
已为社区贡献3条内容
所有评论(0)