YAML是一种可读性高,以数据为中心的数据序列化格式。可以表达对象(键值对)、数组、标量,能够被多种贬称该语言和脚本语言解析。
基本语法
- 以 k:v 的形式表示键值对的关系,冒号后面必须有一个空格;
- # 表示注释;
- 对大小写敏感;
- 通过缩进来表示层级关系,缩排中空格的数目不重要,只要相同阶层的元素左侧对齐就可以;
- 缩进只能使用空格,不能使用tab缩进键;
- 字符串可以不用双引号;
格式
1. 键值对
键值通过 冒号:,形如 k: v的方式表示,冒号后面要加一个空格,比如:
Name: Astrom
Sex: femal
School: TJU
如果是一个对象的多个属性,有两种表示方式:
// 第一种表示方式
People:
Name: Astron
Sex: femal
School: TJU// 第二种表示方式
People: {Name: Astron, Sex: femal}
2. 数组
数组中的元素采用 – 表示,以 – 开头的行表示构成一个数组;如下:
– A
– B
– C
如果有多个数据,有两种表示方法
// 第一种表示方法
People:
– yyy
– zzz
– www// 第二种表示方法
People: [yyy, zzz, www]
对象数组的表示也有两种方式,如下:
// 第一种表示方式
People:
–
name: yyy
age: 18
–
name: zzz
age: 19// 第二种表示方式,流式表示
People: [{name: yyy, age: 18},{name: zzz, age: 19}]
3. 标量
标量是最基本的不可再分的值,包括:
- 整数
- 浮点数
- 字符串
- 布尔值
- Null
- 时间
- 日期
表示如下:
boolean:
– true # 大小写都可以
– false
float:
– 3.14
– 3.25e+5
int: 12
null:
nodeName: name
string: 123
date: 2020-01-01 # 格式为yyy-MM-dd
datetime: 2020-01-01T15:02:08+08:00 # 日期和时间使用T连接,+表示时区
4. 引用
& 建立锚点,* 引用锚点,<< 合并到当前数据,实例:
defaults: &defaults
adapter: ppp
host: qqq
development:
database: mq
<<: *defaults
// 上述语句相当于
defaults:
adapter: ppp
host: qqq
development:
database: mq
adapter: ppp
host: qqq
// 实例二
- &showell steve
- clark
- eve
- *showell
// 相当于
- steve
- clark
- eve
- steve
最后YAML的使用场景,可以用在脚本语言或者配置文件中,但需要注意不同语言间的数据流转不建议使用YAML。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/46156.html