YAML语言介绍

2023-08-10 08:29:42 浏览数 (1)

YAML语言介绍

​YAML是一个类似 XML、JSON 的标记性语言。它强调以数据为中心,并不是以标识语言为重点。因而YAML本身的定义比较简单,号称"一种人性化的数据格式语言"。

代码语言:javascript复制
<heima>
	<age>15</age>
    <address>Beijing</address>
</heima>
代码语言:javascript复制
heima:
  age: 15
  address: Beijing

YAML的语法比较简单,主要有下面几个:

  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进不允许使用tab,只允许空格( 低版本限制 )
  • 缩进的空格数不重要,只要相同层级的元素左对齐即可
  • '#'表示注释

YAML支持以下几种数据类型:

  • 纯量:单个的、不可再分的值
  • 对象:键值对的集合,又称为映射(mapping)/ 哈希(hash) / 字典(dictionary)
  • 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)

1. 布尔类型

代码语言:javascript复制
# 纯量, 就是指的一个简单的值,字符串、布尔值、整数、浮点数、Null、时间、日期
# 1 布尔类型
c1: true (或者True)

2. 整型

代码语言:javascript复制
# 2. 整型
c2: 234

3. 浮点型

代码语言:javascript复制
# 3. 浮点型
c3: 3.14

4. null类型

代码语言:javascript复制
# 4. null类型 
c4: ~  # 使用~表示null

5. 日期类型

代码语言:javascript复制
# 5. 日期类型
c5: 2018-02-17    # 日期必须使用ISO 8601格式,即yyyy-MM-dd

6. 时间类型

代码语言:javascript复制
# 6. 时间类型
c6: 2018-02-17T15:02:31 08:00  # 时间使用ISO 8601格式,时间和日期之间使用T连接,最后使用 代表时区

7. 字符串类型

代码语言:javascript复制
# 7 字符串类型
c7: heima     # 简单写法,直接写值 , 如果字符串中间有特殊字符,必须使用双引号或者单引号包裹 
c8: line1
    line2     # 字符串过多的情况可以拆成多行,每一行会被转化成一个空格

8. 对象

代码语言:javascript复制
# 对象
# 形式一(推荐):
heima:
  age: 15
  address: Beijing
# 形式二(了解):
heima: {age: 15,address: Beijing}

9. 数组

代码语言:javascript复制
# 数组
# 形式一(推荐):
address:
  - 顺义
  - 昌平	
# 形式二(了解):
address: [顺义,昌平]
代码语言:javascript复制
# 对象数组格式一
users: 
  - name: Tom
    age: 4
  - name: Jerry
    age: 5
# 对象数组格式二
users: 
  -
    name: Tom
    age: 4
  -
    name: Jerry
    age: 5 
# 对象数组缩略格式
users2: [ { name:Tom , age:4 } , { name:Jerry , age:5 } ]

10. 字符串显示n

>:显示末尾n|-:显示中间n

代码语言:javascript复制
paragraph: >
   Blank lines denote
   paragraph breaks
content: |-
   Or we
   can auto
   convert line breaks
   to save space

结果

代码语言:javascript复制
"paragraph": "Blank lines denote paragraph breaksn",
"content": "Or wencan autonconvert line breaksnto save

11. 参数共享

代码语言:javascript复制
alias: &foo
 bar: baz
alias_reuse: *foo

结果:

代码语言:javascript复制
space",
  "alias": {
    "bar": "baz"
  },
  "alias_reuse": {
    "bar": "baz"
  }

12. 多层级配置

代码语言:javascript复制
object:
	key: value
  array:
    - null_value:
    - boolean: true
    - integer: 1
    - alias: &example aliases are like variables
    - alias: *example
    - test:
       key01:
        value01

结果:

代码语言:javascript复制
 "object": {
   "key": "value",
   "array": [
     {
       "null_value": null
     },
     {
       "boolean": true
     },
     {
       "integer": 1
     },
     {
       "alias": "aliases are like var
     },
     {
       "alias": "aliases are like var
     },
     {
       "test": {
         "key01": "value01"
       }
     }
   ]
 }

小提示: ​ 1 书写yaml切记: 后面要加一个空格 ​ 2 如果需要将多段yaml配置放在一个文件中,中间要使用---分隔 ​ 3 下面是一个yaml转json的网站,可以通过它验证yaml是否书写正确 ​ https://www.json2yaml.com/convert-yaml-to-json

https://www.json2yaml.com/convert-yaml-to-json

0 人点赞