东行天下

导航

 

可以在一个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' ]

 

posted on 2022-09-18 18:44  东行天下  阅读(77)  评论(0)    收藏  举报