0%

yaml语法详解

YAML Ain’t Markup Language™
YAML is a human-friendly data serialization language for all programming languages.

YAML 语言(发音 /ˈjæməl/ )的设计目标,就是方便人类读写。它实质上是一种通用的数据串行化格式。

特性

  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进时不允许使用Tab键,只允许使用空格。
  • 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可

语法

  • 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)

  • 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)

  • 纯量(scalars):单个的、不可再分的值。

    • string
    • number
      • int
      • float
    • Null
    • time
    • data
  • 注释: #表示注释,从这个字符一直到行尾,都会被解析器忽略。

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

  • |: 保留换行符

    • +:保留文字块末尾的换行
    • -:删除字符串末尾的换行
  • <<: 合并内容

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# https://www.json2yaml.com/
# https://nodeca.github.io/js-yaml/
#
json:
- rigid
- better for data interchange
yaml:
- slim and flexible
- better for configuration
object:
key: value
array:
- null_value:
- boolean: true
- integer: 1
# 锚点&和别名*,可以用来引用。
- alias: &example aliases are like variables
- alias: *example
# 多行字符串可以使用|保留换行符,也可以使用>折叠换行。
paragraph: >
Blank lines denote

paragraph breaks
# +表示保留文字块末尾的换行,-表示删除字符串末尾的换行。
content: |-
Or we
can auto
convert line breaks
to save space
alias: &foo
bar: baz
alias_reuse: *foo
# << 表示合并到当前数据
<<: *foo

refer

  • https://yaml.org/
  • https://www.ruanyifeng.com/blog/2016/07/yaml.html