什么是YAML?

YAML(YAML Ain’t Markup Language)是一种人类可读的数据序列化标准,用于配置文件和数据交换。它比JSON和XML更简洁,且更加直观,特别适合用来写配置文件。YAML文件的后缀通常为 .yaml.yml

YAML的基本语法规则

  1. 键值对

    • YAML 使用冒号和空格分隔键和值。
      1
      2
      name: John Doe
      age: 30
  2. 缩进

    • 缩进表示层次结构。通常使用空格(而不是制表符)来缩进。
      1
      2
      3
      person:
      name: John Doe
      age: 30
  3. 列表

    • 列表项用破折号和一个空格开头。
      1
      2
      3
      4
      hobbies:
      - reading
      - swimming
      - coding
  4. 嵌套结构

    • 键值对和列表可以嵌套。
      1
      2
      3
      4
      5
      6
      7
      person:
      name: John Doe
      age: 30
      hobbies:
      - reading
      - swimming
      - coding
  5. 多行字符串

    • 使用 | 表示保留换行的多行字符串,使用 > 表示折叠换行的多行字符串。
      1
      2
      3
      4
      5
      6
      description: |
      This is a description
      that spans multiple lines.
      folded: >
      This is a folded
      multi-line string.

YAML的优点

  • 可读性高:YAML设计的目标之一就是可读性,特别适合用作配置文件。
  • 支持多种数据结构:YAML支持基本的标量(如字符串、整数、浮点数)、列表和字典(映射)等复杂数据结构。
  • 语言无关:YAML的语法与编程语言无关,因此可以在多种编程语言中使用。

示例

一个复杂的YAML示例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
server:
host: localhost
port: 8080

database:
engine: postgresql
host: db.example.com
port: 5432
username: user
password: pass
options:
reconnect: true

features:
- name: Feature1
enabled: true
- name: Feature2
enabled: false

logging:
level: DEBUG
file: /var/log/app.log

这个YAML文件描述了一个服务器配置,其中包括服务器信息、数据库连接信息、特性开关和日志设置。

常见用途

  • 配置文件:许多应用程序和框架(如Docker、Kubernetes、Ansible等)使用YAML来定义配置。
  • 数据序列化:YAML可以用于在不同系统之间序列化和反序列化数据。
  • 文件格式定义:一些数据文件格式也采用YAML,如Swagger/OpenAPI规范文件。

总之,YAML 是一种简单且强大的数据表示格式,非常适合用于配置文件和数据序列化场景。

Author

Runcheng XIA

Posted on

2024-07-14

Updated on

2024-07-21

Licensed under

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×