可以在一个YAML文件中包含多个YAML文档,每个文档之间的分隔都用三个破折号(---)标记
空格缩进,大小写敏感
数据结构:
1.对象: 键值对的集合,又称为映射(mapping) /哈希(hashes) /字典(dictionary)
1 name: Tom 2 age: 18 3 或 4 一行写法 hash: { name: Steve, age: 18 }
2.数组: 一组按次序排列的值,又称为序列(sequence) /列表(list)
2 - Cat 3 - Dog 4 - Pig
或 5 行内写法 6 animal: [Cat, Dog, Pig]
3.纯量: 单个的、不可再分的值
3.1 数值直接以字面量的形式表示
number: 12.30
3.2 布尔值以true 和false 来表示
isSet: true
3.3 null用 ~ 表示
parent: ~
3.4 时间用 ISO8601 格式
iso8601: 2001-12-14t21:59:43.10-05:00
3.5 日期采用复合 ISO8601 格式的年、月、日表示
date: 1976-12-20
3.6 YAML 允许使用两个感叹号,强制转换数据类型
e: !!str 123
f: !!str true
4.字符串(字符串默认不适用引号表示)
4.1 str : 这是一行字符串
4.2 单引号和双引号都可以使用,双引号不会对特殊字符进行转义。
s1: '内容\n字符串'
s2: "内容\n字符串"
转为JavaScript { s1: '内容\\n字符串', s2: '内容\n字符串'}
4.3 字符串可以写成多行,从第二行开始,必须有一个单空格缩进。换行符会被转为空格。
str: 这是一段
多行
字符串
转为JavaScript { str: '这是一段 多行 字符串'}
4.4 多行字符串可以采用 | 保留换行符,也可以使用 > 折叠换行。
this: |
Foo
Bar
that: >
Foo
Bar
转为JavaScript { this: 'Foo\nBar\n', that:'Foo Bar\n' }
5.引用
锚点 & 和别名 * , 可以用来引用
defaults: &defaults
adapter: postgres
host: localhost
development:
database: myapp_development,
<<: *defaults
test:
database: myapp_test,
<<: *defaults
相当于
defaults:
adapter: postgres
host: localhost
development:
database: myapp_development,
adapter: postgres
host: localhost
test:
database: myapp_test,
adapter: postgres
host: localhost
&用来建立锚点(defaults),<<表示合并到当前数据,*用来引用锚点。
下面另外一个例子
- &showell Steve
- Clark
- Brian
- Oren
- *showell
转为JavaScript
[ 'Steve', 'Clark', 'Brian', 'Oren', 'Steve' ]
标签:postgres,YAML,str,defaults,字符串,Foo From: https://www.cnblogs.com/dxtx/p/16704871.html