文章目录
-
- [一、YAML 的核心特点](#一、YAML 的核心特点)
- [二、一个简单的 YAML 配置示例](#二、一个简单的 YAML 配置示例)
-
- [对应结构(类似 JSON)](#对应结构(类似 JSON))
- [三、YAML 基本语法规则](#三、YAML 基本语法规则)
-
- [1. 缩进表示层级(非常关键)](#1. 缩进表示层级(非常关键))
- [2. 键值对(Key-Value)](#2. 键值对(Key-Value))
- [3. 列表(数组)](#3. 列表(数组))
- [4. 嵌套结构](#4. 嵌套结构)
- [5. 布尔值 / 数字](#5. 布尔值 / 数字)
- [四、YAML 常见使用场景](#四、YAML 常见使用场景)
-
- [1. DevOps / 运维](#1. DevOps / 运维)
- [2. CI/CD](#2. CI/CD)
- [3. 后端配置](#3. 后端配置)
- [4. 前端/工程化工具](#4. 前端/工程化工具)
- [五、YAML vs JSON(快速对比)](#五、YAML vs JSON(快速对比))
YAML( YAML Ain't Markup Language )是一种 人类可读的数据序列化格式 ,常用于 配置文件 。所谓"YAML配置",就是用 YAML 语法写的配置文件,用来定义程序的参数、环境、结构等。
一、YAML 的核心特点
- 可读性强:接近自然语言
- 用缩进表示层级 (不像 JSON 用
{}) - 支持多种数据类型:字符串、数字、数组、对象等
- 广泛用于工程领域(DevOps、后端、AI等)
二、一个简单的 YAML 配置示例
yaml
server:
host: localhost
port: 8080
database:
type: mysql
username: root
password: 123456
features:
- login
- register
- payment
对应结构(类似 JSON)
json
{
"server": {
"host": "localhost",
"port": 8080
},
"database": {
"type": "mysql",
"username": "root",
"password": "123456"
},
"features": ["login", "register", "payment"]
}
三、YAML 基本语法规则
1. 缩进表示层级(非常关键)
yaml
a:
b:
c: 1
👉 必须用空格(通常 2 个),不能用 Tab
2. 键值对(Key-Value)
yaml
name: Ethan
age: 30
3. 列表(数组)
yaml
items:
- apple
- banana
- orange
4. 嵌套结构
yaml
user:
name: Ethan
skills:
- coding
- management
5. 布尔值 / 数字
yaml
enabled: true
count: 10
price: 9.99
四、YAML 常见使用场景
1. DevOps / 运维
- Docker → docker-compose.yml
- Kubernetes → deployment.yaml
2. CI/CD
- GitHub Actions →
.github/workflows/*.yml
3. 后端配置
- Spring Boot →
application.yml
4. 前端/工程化工具
- Webpack / Vite / ESLint 等工具的配置
五、YAML vs JSON(快速对比)
| 特性 | YAML | JSON |
|---|---|---|
| 可读性 | 很高 | 一般 |
| 语法 | 简洁(靠缩进) | 严格(大括号) |
| 注释 | 支持 # |
不支持 |
| 易出错点 | 缩进错误 | 逗号/括号 |