YAML语言介绍

简介: YAML语言介绍

YAML语言介绍

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

<heima>
  <age>15</age>
    <address>Beijing</address>
</heima>
heima:
  age: 15
  address: Beijing

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

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

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

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

1. 布尔类型

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

2. 整型

# 2. 整型
c2: 234

3. 浮点型

# 3. 浮点型
c3: 3.14

4. null类型

# 4. null类型 
c4: ~  # 使用~表示null

5. 日期类型

# 5. 日期类型
c5: 2018-02-17    # 日期必须使用ISO 8601格式,即yyyy-MM-dd

6. 时间类型

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

7. 字符串类型

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

8. 对象

# 对象
# 形式一(推荐):
heima:
  age: 15
  address: Beijing
# 形式二(了解):
heima: {age: 15,address: Beijing}

9. 数组

# 数组
# 形式一(推荐):
address:
  - 顺义
  - 昌平  
# 形式二(了解):
address: [顺义,昌平]
# 对象数组格式一
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

paragraph: >
   Blank lines denote
   paragraph breaks
content: |-
   Or we
   can auto
   convert line breaks
   to save space

结果

"paragraph": "Blank lines denote paragraph breaks\n",
"content": "Or we\ncan auto\nconvert line breaks\nto save

11. 参数共享

alias: &foo
 bar: baz
alias_reuse: *foo

结果:

space",
  "alias": {
    "bar": "baz"
  },
  "alias_reuse": {
    "bar": "baz"
  }

12. 多层级配置

object:
  key: value
  array:
    - null_value:
    - boolean: true
    - integer: 1
    - alias: &example aliases are like variables
    - alias: *example
    - test:
       key01:
        value01

结果:

"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

目录
相关文章
|
JSON JavaScript 前端开发
Docker Compose - YAML 配置文件语言
Docker Compose - YAML 配置文件语言
Docker Compose - YAML 配置文件语言
|
机器学习/深度学习 JavaScript 前端开发
yaml 语言入门
yaml 语言入门
1355 0
|
JavaScript 前端开发 数据库
|
3月前
|
存储 IDE 测试技术
玩转数据处理利器:学会使用 YAML 文件轻松处理数据
玩转数据处理利器:学会使用 YAML 文件轻松处理数据
57 0
|
6月前
|
Kubernetes Cloud Native 应用服务中间件
【云原生】使用k8s创建nginx服务—通过yaml文件svc类型暴露
【云原生】使用k8s创建nginx服务—通过yaml文件svc类型暴露
133 0
|
6月前
|
Web App开发 资源调度 JavaScript
SAP Fiori Elements 应用里的 ui5.yaml 文件详解试读版
SAP Fiori Elements 应用里的 ui5.yaml 文件详解试读版
76 0
|
6月前
|
Kubernetes 应用服务中间件 nginx
kubernetes集群命令行工具kubectl介绍&yaml文件介绍-20230208
kubernetes集群命令行工具kubectl介绍&yaml文件介绍-20230208
|
2月前
|
机器学习/深度学习 数据可视化 计算机视觉
YOLOv5改进 | 2023Neck篇 | 轻量级跨尺度特征融合模块CCFM(附yaml文件+添加教程)
YOLOv5改进 | 2023Neck篇 | 轻量级跨尺度特征融合模块CCFM(附yaml文件+添加教程)
149 1
|
2月前
|
Shell Go
go 编辑yaml 文件
在Go语言中编辑YAML文件通常涉及以下步骤: 1. 读取YAML文件内容到字符串。 2. 使用YAML解析库(如`gopkg.in/yaml.v2`)将字符串解析为Go数据结构(如`map[string]interface{}`或自定义的结构体)。 3. 修改数据结构中的值以更新YAML内容。 4. 将修改后的数据结构编码回YAML格式的字符串。 5. 将字符串写回到YAML文件。 以下是一个简单的例子,展示了如何使用`gopkg.in/yaml.v2`库来编辑YAML文件: 首先,确保你已经安装了`gopkg.in/yaml.v2`包: ```bash go get gopkg.i
|
6月前
|
Kubernetes NoSQL 关系型数据库
通过编写k8s的资源清单yaml文件部署gitlab服务
通过编写k8s的资源清单yaml文件部署gitlab服务

热门文章

最新文章