Yaml
基本规则:
1、大小写敏感
2、使用缩进表示层级关系
3、禁止使用tab缩进,只能使用空格键
4、缩进长度没有限制,只要元素对齐就表示这些元素属于一个层级。
5、使用#表示注释
6、字符串可以不用引号标注
7、每个冒号后面跟的参数都需要有一个空格
三种数据结构
1、map,散列表
使用冒号(:)表示键值对,同一缩进的所有键值对属于一个map,示例:
# YAML表示
age : 12
name : huang
# 对应的Json表示
{'age':12,'name':'huang'}
2、list,数组
使用连字符(-)表示:
# YAML表示
- a
- b
- 12
# 对应Json表示
['a','b',12]
数据结构嵌套
1、map嵌套map
# YAML表示,冒号:后面必须加空格
websites:
YAML: yaml.org
Ruby: ruby-lang.org
Python: python.org
Perl: use.perl.org
# 对应Json表示
{ websites:
{ YAML: 'yaml.org',
Ruby: 'ruby-lang.org',
Python: 'python.org',
Perl: 'use.perl.org' } }
2、map嵌套list
# YAML表示
languages:
- Ruby
- Perl
- Python
- c
# 对应Json表示
{ languages: [ 'Ruby', 'Perl', 'Python', 'c' ] }
3、list嵌套list
# YAML表示
-
- Ruby
- Perl
- Python
-
- c
- c++
- java
# 对应Json表示
[ [ 'Ruby', 'Perl', 'Python' ], [ 'c', 'c++', 'java' ] ]
4、list嵌套map
# YAML表示
-
id: 1
name: huang
-
id: 2
name: liao
# 对应Json表示
[ { id: 1, name: 'huang' }, { id: 2, name: 'liao' } ]
Json
Json对象(类比Yaml中的map)
{ "name":"runoob", "alexa":10000, "site":null }
需要注意:
JSON 对象在大括号{}中书写(Json最外层一定是{})
。与此相对的,JSON 数组在中括号中书写。
key 必须是字符串(必须加双引号)
,value 可以是合法的 JSON 数据类型如字符串, 数字,对象等(如果是字符串类型必须加双引号)。
Json数组(类比Yaml中的list)
[ "Google", "Runoob", "Taobao" ]
JSON 中数组值必须是合法的 JSON 数据类型,如字符串, 数字,对象等。
JSON 对象中的数组(类比Yaml中map嵌套list)
{
"name":"网站",
"num":3,
"sites":[ "Google", "Runoob", "Taobao" ]
}
注1:yaml转json有相关的网站,但是转换完后的json放到格式校验中会提示RangeError: Invalid array length
。解决方法是对所有的键加双引号,同时将值中的单引号修改为双引号。
注2:yaml转json网站:http://www.bejson.com/validators/yaml_editor/