YAML语言的介绍和语法规则
2021-01-11 21:00
10 查看
目录内容转载自我的博客
1. YAML语言概述
YAML 语言的基本语法规则如下
- 大小写敏感
- 使用缩进表示层级关系
- 缩进时不允许使用Tab键,只允许使用空格。
- 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
#
表示注释,从这个字符一直到行尾,都会被解析器忽略
YAML 支持的数据结构有三种
- 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
- 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
- 纯量(scalars):单个的、不可再分的值
2. YAML语言的对象
对象的一组键值对,使用冒号结构表示
animal: pets
相当于 JavaScript 的对象
{ animal: 'pets' }
也允许另一种写法,将所有键值对写成一个行内对象
hash: { name: Steve, foo: bar }
相当于 JavaScript 的对象
{ hash: { name: 'Steve', foo: 'bar' } }
3. YAML语言的数组
一组连词线开头的行,构成一个数组
- Cat - Dog - Goldfish
转为 JavaScript 表示如下
[ 'Cat', 'Dog', 'Goldfish' ]
数据结构的子成员是一个数组,则可以在该项下面缩进一个空格
- - Cat - Dog - Goldfish
转为 JavaScript 表示如下
[ [ 'Cat', 'Dog', 'Goldfish' ]]
数组也可以采用行内表示法
animal: [Cat, Dog]
转为 JavaScript 表示如下
{ animal: [ 'Cat', 'Dog' ] }
4. YAML语言的复合结构
对象和数组可以结合使用,形成复合结构
languages: - Ruby - Perl - Python websites: YAML: yaml.org Ruby: ruby-lang.org Python: python.org Perl: use.perl.org
转为 JavaScript 表示如下
{ languages: [ 'Ruby', 'Perl', 'Python' ], websites: { YAML: 'yaml.org', Ruby: 'ruby-lang.org', Python: 'python.org', Perl: 'use.perl.org' } }
5. YAML语言的纯量
纯量是最基本的、不可再分的值。以下数据类型都属于 JavaScript 的纯量:字符串、布尔值、整数、浮点数、Null、时间、日期、数值直接以字面量的形式表示
number: 12.30 isSet: true parent: ~ iso8601: 2001-12-14t21:59:43.10-05:00 date: 1976-07-31 # 使用两个感叹号,强制转换数据类型 e: !!str 123 f: !!str true
转为 JavaScript 如下
{ number: 12.30, isSet: true, parent: null, 1b66 iso8601: new Date('2001-12-14t21:59:43.10-05:00'), date: new Date('1976-07-31'), e: '123', f: 'true', }
6. YAML语言的字符串
字符串是最常见,也是最复杂的一种数据类型,字符串默认不使用引号表示
str1: 这是一行字符串 # 字符串之中包含空格、冒号或特殊字符,需要放在引号之中 str2: '内容: 字符串' # 单引号和双引号都可以使用,双引号不会对特殊字符转义 s1: '内容\n字符串' s2: "内容\n字符串" # 单引号之中如果还有单引号,必须连续使用两个单引号转义 str3: 'labor''s day' # 字符串可以写成多行,从第二行开始,必须有一个单空格缩进,换行符会被转为空格 st4: 这是一段 多行 字符串 # 多行字符串可以使用|保留换行符,也可以使用>折叠换行 this: | Foo Bar that: > Foo Bar # +表示保留文字块末尾的换行,-表示删除字符串末尾的换行 s3: | Foo s4: |+ Foo s5: |- Foo # 字符串之中可以插入 HTML 标记 message: | <p style="color: red"> 段落 </p>
转为 JavaScript 如下
{ str1: '这是一行字符串', str2: '内容: 字符串', s1: '内容\\n字符串', s2: '内容\n字符串', str3: 'labor\'s day', str4: '这是一段 多行 字符串', this: 'Foo\nBar\n', that: 'Foo Bar\n', s3: 'Foo\n', s4: 'Foo\n\n\n', s5: 'Foo', message: '\n<p style="color: red">\n 段落\n</p>\n' }
7. YAML语言的引用
锚点
&和别名
*可以用来引用
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' ]
引用变量和数组变量示例
country: 中国 city: - 北京 - 上海 - 深圳 - 南京 - 重庆 websites: YAML: yaml.org Ruby: ruby-lang.org Python: python.org Perl: use.perl.org myCountry: ${country} myCity: ${city[0]} myweb: ${websites.YAML} by zfb
相关文章推荐
- ansible使用及YAML语法介绍
- C#语法糖演进-C#语言和.NET Framework平台介绍
- c#&vb两种语言语法的简要介绍
- Spring boot application.yaml 配置文件语法介绍和单元测试教程
- DJango模块语言(DTL)语法简单介绍
- c#&vb两种语言语法的简要介绍
- Java 语法介绍(一):Java语言的基本组成
- Java 语法介绍(一):Java语言的基本组成
- 数据交换语言的命名规则及其语法
- Absible——YAML语法介绍和Playbook介绍
- Apache Rewrite规则配置常用语法介绍
- YAML语言介绍
- 黑马程序员-OC语言-点语法介绍和使用(听课笔记)
- 【转载】Velocity模板引擎的介绍和基本的模板语言语法使用
- BIM建筑环境规则和分析(BERA)语言介绍(二)第一章 引言
- sql 语言总结和语法介绍
- drl 规则语言 语法_C语言基本语法规则
- yaml语法三大规则
- JAVA语言程序语法规则注意事项之一
- yaml语法三大规则