yaml
- 一个数据序列化的标准,适用于所有开发语言,最大的特点是可读性好。
- 一个主要应用方向就是编写配置文件,有非常多的系统和框架采用yaml进行配置。
yaml基本规则
- 区分大小写
- 使用缩进表示层级关系;
- 禁止使用tab缩进,只能使用空格键;
- 缩进长度没有限制,只要元素对奇就表示该部分元素属于一个层级;
- 使用#表示注释;
- 字符串可以不用引号标注
三种数据结构
1. map,散列表
使用冒号:表示键值对,同一缩进的所有键值对属于一个map
#yaml表示
age:12
name:aa
#对应的Json表示
{'age':12,'name':'aa'}
2. list,数组
使用连接符(-)表示:
#yaml表示:
-a
-b
-1
#对应的Json表示:
['a','b',1]
#也可以写在一行
[a,b,c]
#对应Json表示
['a','b','c']
3. scalar,纯量
数据最小的单位,不可以再分割
数据结构嵌套
- 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' } }
- map嵌套list
#YAML表示
languages:
- ruby
- perl
- python
- c
#对应Json表示
{language:['ruby','perl','python','c']}
- list嵌套list
方法一:
#YAML表示
-
- ruby
- perl
- python
-
- c
- c++
- java
#对应Json表示
[['ruby','perl','python'],['c','c++','java']]
方法二:
-- ruby
- perl
- python
-- c
- c++
- java
方法三:
- [ruby,perl,python]
- [c,c++,java]
- list嵌套map
#YAML表示
-
id:1
name:a
-
id:2
name:b
#对应Json表示
[{id:1,name:'a'},{id:2,name:'b'}]