YAML语法格式详解

引言

YAML(YAML Ain't Markup Language)是一种人类可读的数据序列化格式,常用于配置文件、数据交换等场景。由于其简洁明了的语法,YAML在开发者中广受欢迎。本文将详细介绍YAML的基本语法格式及其使用场景。

1. YAML基本结构

YAML使用缩进来表示层级关系,通常使用两个空格作为缩进的单位。每个层级的内容通过冒号(:)和空格分隔。

1.1 键值对

YAML的基本结构是键值对,格式为:

key: value

例如:

name: John Doe
age: 30

1.2 注释

YAML中可以使用#符号添加注释,注释内容会被忽略。

# 这是一个注释
name: John Doe  # 这是另一个注释

2. 数据类型

YAML支持多种数据类型,包括字符串、数字、布尔值、列表和字典。

2.1 字符串

字符串可以用单引号或双引号包裹,也可以不使用引号。

yaml

string1: "Hello, World!"
string2: 'YAML is awesome!'
string3: This is a plain string.

2.2 数字

YAML支持整数和浮点数:

integer: 42
float: 3.14

2.3 布尔值

布尔值用truefalse表示:

is_active: true
is_admin: false

2.4 列表

列表用短横线(-)表示,每个元素占一行,缩进表示层级关系。

yaml

fruits:
  - apple
  - banana
  - orange

2.5 字典

字典是键值对的集合,键值对之间使用缩进表示层级关系。

yaml

person:
  name: John Doe
  age: 30
  address:
    city: New York
    zip: 10001

3. 复杂数据结构

YAML可以嵌套列表和字典,构建复杂的数据结构。

yaml

employees:
  - name: Alice
    age: 28
    skills:
      - Python
      - Java
  - name: Bob
    age: 35
    skills:
      - JavaScript
      - Go

4. 多文档支持

YAML支持多个文档在同一个文件中,每个文档之间用三个短横线(---)分隔。

yaml

---
name: John Doe
age: 30
---
name: Jane Smith
age: 25

5. 使用场景

YAML广泛应用于配置文件、数据交换、API响应等场景。常见的应用包括:

  • Docker Compose 文件
  • Kubernetes 配置文件
  • Ansible 剧本

结论

YAML以其简洁、可读的特性在现代开发中发挥着重要作用。了解并掌握YAML的语法格式,可以帮助开发者更高效地进行配置和数据管理。希望本文能为你提供一个清晰的YAML语法概述,助你在实际应用中游刃有余。

相关推荐
菜鸟小贤贤21 天前
Python+Pytest+Yaml+Allure数据参数化(DDT)数据驱动(一)
python·pytest·接口自动化·allure·yaml·ddt
ChaITSimpleLove1 个月前
K8s 一键部署 MongoDB 的 Replica-Set 和 MongoDB-Express
mongodb·kubernetes·express·高可用·yaml·replica-set
hello world smile2 个月前
最全的Flutter中pubspec.yaml及其yaml 语法的使用说明
android·前端·javascript·flutter·dart·yaml·pubspec.yaml
2301_806131362 个月前
yaml文件编写
yaml
peanutfish2 个月前
Chapter 9 RH294 RHEL Automation with Ansible
linux·ansible·yaml
peanutfish2 个月前
Chapter 8 RH294 RHEL Automation with Ansible
linux·ansible·yaml
peanutfish3 个月前
Chapter 4 RH294 RHEL Automation with Ansible
linux·ansible·yaml
peanutfish3 个月前
Chapter 5 RH294 RHEL Automation with Ansible
linux·ansible·yaml
曹开尔4 个月前
hexo+github+zeabur个人博客
arcgis·node.js·github·yaml
JingAi_jia9175 个月前
Yaml及解析框架SnakeYaml简介及TypeDescription的使用和原理
yaml·snakeyaml·snakeyaml原理·typedescription·yaml解析