1. YAML基础概念解析
YAML(YAML Ain't Markup Language)是一种人类友好的数据序列化标准,近年来在配置文件、数据交换等场景中越来越受欢迎。我第一次接触YAML是在2016年配置一个CI/CD流水线时,当时就被它简洁的语法所吸引。相比JSON和XML,YAML通过缩进和简单符号就能表达复杂数据结构,特别适合需要人工编辑的场景。
YAML有三个核心特点值得注意:
- 可读性优先:使用缩进表示层级,避免了大括号和引号的视觉干扰
- 数据类型丰富:原生支持字符串、数字、布尔值、日期、null等基本类型,以及数组和对象
- 跨语言兼容:几乎所有主流编程语言都有成熟的YAML解析库
注意:YAML 1.2版本开始完全兼容JSON,这意味着合法的JSON文件可以直接被YAML解析器读取
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. YAML语法精要
2.1 基本数据结构
键值对是YAML的基础单元,用冒号分隔键和值:
yaml复制name: John Doe
age: 30
列表有两种表示方式。我更喜欢第二种,因为修改时不需要调整逗号:
yaml复制# 行内写法
fruits: [apple, banana, orange]
# 多行写法(推荐)
fruits:
- apple
- banana
- orange
多行字符串处理是YAML的特色功能。我在写文档模板时经常使用:
yaml复制description: |
This is a multi-line
string that preserves
line breaks and indentation
2.2 高级特性
锚点与引用可以避免重复定义,在Kubernetes配置中很常见:
yaml复制defaults: &defaults
adapter: postgres
host: localhost
development:
<<: *defaults
database: dev
类型转换需要特别注意。有次我因为没加引号导致ID被自动转为科学计数法:
yaml复制# 错误示例(数字会被解析为数值)
account
