简介
YAML是“YAML不是一种标记语言”的外语缩写;但为了强调这种语言以数据做为中心,而不是以置标语言为重点,而用返璞词重新命名。它是一种直观的能够被电脑识别的数据序列化格式,是一个可读性高并且容易被人类阅读,容易和脚本语言交互,用来表达资料序列的编程语言。它是类似于标准通用标记语言的子集XML的数据描述语言,语法比XML简单很多。
在我看来,yaml是最适合用于做程序配置的语言了。
基本语法
k:(空格)v: 表示一对键值对(空格必须有)
以空格的缩进来控制层级关系;只要是做肚脐的一列数据,都是同一个层级的。
server:
port: 8081
path: /hello
属性和值都是大小写敏感的。
值的写法
字面量
普通的值(数字、字符串、布尔)
k:v;字面量直接来写,字符串不需要加上丹壹号或者双引号;
双引号:不会转移字符串李的特殊字符,特殊字符会作为本身想表示的意思。
name:"zhangsan\nlisi"
其输出就是有换行。
单引号:会转义特殊字符,特殊字符最终只是一个普通的字符串数据。
name:"zhangsan\nlisi"
输出为原样。
对象、Map(属性和值、键值对)
对象还是k:v的方式,在下一行直接写对象的属性和值的关系,不过要注意缩进(两个空格)。
friends:
lastName: zhangsan
age: 20
行内写法:
friends: {lastName: zhangsan,age: 18}
数组(List、Set)
短横线(空格)值 表示数组中的一个元素。
pets:
- cat
- dog
- pig
行内写法:
pets: [cat,dog,pig]
进阶语法
复合结构
person:
lastName: zhangsan
age: 18
boss: false
birth: 2017/12/12
maps: {k1: v1,k2: 12}
lists:
- lisi
- zhangsan
dog:
name: xiaogou
age: 2