Skip to content

YAML

YAML(/ˈjæməl/)是一个可读性高,用来表达数据序列化的格式。

YAML是专门写配置文件的语言

简介

基本语法规则:
大小写敏感
使用缩进表示层级关系
缩进只能用空格不能用Tab键
缩进空格数目不重要,只要同级左对齐即可
’#‘表示注释

支持三种数据结构:
对象:键值对(又称映射mapping/哈希hashes/字典dictionary)
数组:一组按次序排列的值 又称为序列sequence/列表list
纯量:单个的、不可再分的值

对象

yml
animal:pets

转为JS:

数组

一组连词线开头的行,构成一个数组。

yml
- Cat
- Dog

转为JS如下:
['Cat','Dog']

复合结构

对象和数组可以结合使用,行程复合结构。

纯量

举几个特殊的:
null用~表示

时间格式采用ISO8601格式:
iso8601: 2001-12-14t21:59:43.10-05:00
转为JS如下:

js
{ iso8601: new Date('2001-12-14t21:59:43.10-05:00') }

日期采用复合iso8601格式的年、月、日表示:
date: 1976-07-31
转为 JavaScript 如下:

js
{ date: new Date('1976-07-31') }

YAML 允许使用两个感叹号,强制转换数据类型。

字符串

字符串默认不使用引号表示。
str:字符串
转为JS如下:

如果字符串之中包含空格或特殊字符,需要放在引号之中。

单引号和双引号都可以使用,双引号不会对特殊字符转义。

单引号之中如果还有单引号,必须连续使用两个单引号转义。

字符串可以写成多行,从第二行开始,必须有一个单空格缩进。换行符会被转为空格。

多行字符串可以使用|保留换行符,也可以使用>折叠换行。

+表示保留文字块末尾的换行,-表示删除字符串末尾的换行。

字符串之中可以插入 HTML 标记。

引用

锚点&和别名*,可以用来引用。
&建立锚点
*引用锚点

&用来建立锚点(defaults),<<表示合并到当前数据,*用来引用锚点。

函数和正则表达式的转换

这是 JS-YAML 库特有的功能,可以把函数和正则表达式转为字符串。

参考链接

YAML 语言教程

序列化

序列化(serialization)在计算机科学的资料处理中,是指将数据结构或对象状态转换成可取用格式(例如存成文件,存于缓冲,或经由网络中发送),以留待后续在相同或另一台计算机环境中,能恢复原先状态的过程