简介
1. yaml是什么
2. 为什么要使用yaml
3. 如何使用yaml
4. yaml和其他相近语言的对比
Yet Another Markup Language
适应场景:
1. 脚本语言:由于实现简单,解析成本很低,YAML 特别适合在脚本语言中使用
2. 序列化: YAML是由宿主语言数据类型直转,的比较适合做序列化。
3. 配置文件:写 YAML 要比写 XML 快得多(无需关注标签或引号),并且比 INI 文档功能更强。由于兼容性问题,不同语言间的数据流转建议不要用 YAML。
YAML专门针对常见用例而设计的的:
1. 配置文件
2. 日志文件
3. 跨语言共享文件以及数据共享
YAML中允许表示三种格式:
1. 常量值
2. 对象
3. 数组
表示url属性值
url:http://www.baidu.com
表示server.host属性的值
server:
host:http://www.baidu.com
====
数组,表示server为[a,b,c]
server:
120.168.0.21
120.168.0.22
120.168.0.23
====
常量
pi:3.14 #定义一个数值
hasChild: true #定义一个boolean值
name:"你好" #定义一个字符串
注释:使用#作为注释的开始,YAML中只有行注释
基本格式:
1. YAML大小写敏感
2. 使用缩进代表曾经关系
3. 缩进只能使用空格,不要求空格数
数据结构
1. 对象
key:value
也可以写成:
key:{child-key:value,child-key2:value2}
较为复杂的对象格式,可以使用问号加一个空格代表一个复杂的key,配合一个冒号加一个空格代表一个值(value)。
?
- complexkey1
- complexkey2
:
- complexvalue1
- complexvalue2
表示对象的属性是一个数组[complexkey1,complexkey2],对应的值也是一个数组[complexvalue1,complexvalue2
数组
- 使用一个短横线加一个空格代表一个数组项:
常量
一些特殊符号
- 第1种,--- YAML可以在同一个文件中,使用—-表示一个文档的开始
- 也常常使用---来分割不同的内容,比如记录日志:
- 第2种,... 和---配合使用,在一个配置文件中代表一个文件的结束:
- 第3种,!! YAML中使用!!做类型强行转换:
string:
>- !!str 54321 >
>- !!str true>
#强制转换为字符串
- 第4种,>在字符串中折叠换行,| 保留换行符,这两个符号是YAML中字符串经常使用的符号,比如:
- 第5种,引用。重复的内容在YAML中可以使用&来完成锚点定义,使用*来完成锚点引用,例如:
- 第6种,合并内容。主要和锚点配合使用,可以将一个锚点内容直接合并到一个对象中。来看一个示例:
-
集合和结构
集合中的块序列表示每个条目带有破折号和空格( - )