1- 特点
-
可读性高,用来表达数据序列的格式。
-
以数据为中心的标志性语言
1.1- 基本语法
- 缩进时不允许是他TAB键,只允许使用空格
- 缩进的空格数目不重要,只有相同层级的元素左侧对齐即可
- # 标识注释
1.2- 支持的数据结构
- 对象: 键值对的集合(又称为映射[mapping]/ 哈希[hashes]/字典[dictionary])
- 数组: 一组按次序排列的值(又称为序列[sequence]/列表[list])
- 纯量(scalars):单个的,不可再分的值
2- 数据结构
2.1- 对象类型:键值对
使用冒号结构表示
name: leman
high: 180
或者:
hash: { name: leman, high: 180}
2.2- 数组类型
一组连词线开头的行,构成一个数组
lemanlai:
- name
- high
或者:
lemanlai: [ leman,high ]
2.3- 复合结构
对象和数组可以结合
lemanlai:
- name
- high
rick:
name: rick.zhang
high: 170
henry:
- name: henry.wu
- high: 175
partrice: France
2.4- 纯量
最基本,不可再分的值。
- 字符串,布尔值,整数,浮点数,Null
- 时间,日期等
# 数值
age: 22
# 布尔值使用true和false表示
ifnot: true
# null值,用~表示
money: ~
# 时间格式ISO8601
timenow: 2020-08-15 17:09:00
# 日期格式
today: 2020-08-15
# 强制转换类型,使用两个感叹号
age: !!str 22
money: !!str false
2.5- 字符串
默认不使用引号表示
location: shenzhen
字符串中包含空格或者特殊字符,需要放在引号之中
location: 'nanshan of shenzhen'yaml
单引号和双引号可以同时使用,双引号不会对特殊字符转义
location: "nanshan
shenzhen"
location: 'nanshan
shenzhen'
单引号内的单引号使用多一个单引号进行转义
location: 'shenzhen''s nanshan'
写成多行,从第二行开始必须有一个空格的缩进。换行符会被转为空格
location: nanshan
shenzhen
china
多行字符串使用|或者>保留换行符
location: |
nanshan
shenzhen
zone: >
nanshan
shenzhen
China
使用 + 号保留文字末尾的换行, - 号表示删除字符串末尾的换行
location: |
shenzhen
zone: |+
nanshan
country: |-
China