首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >YAML 语法笔记

YAML 语法笔记

作者头像
用户12558604
发布2026-06-17 17:51:54
发布2026-06-17 17:51:54
110
举报

YAML是一种可读性强的数据序列化格式,常用于配置文件、数据交换等场景

规则

  1. 大小写敏感键名、值的大小写需严格区分(如 nameName 是两个不同的键)。
  2. 缩进表示层级用空格(而非 Tab)缩进表示数据结构的层级关系,缩进数量不固定,但同一层级必须保持一致(推荐 2 或 4 个空格)。
  3. 注释以#开头,从#到行尾均为注释,例如: # 这是一条注释 key: value # 行内注释
  4. 文件扩展名通常为 .yaml.yml(无本质区别)。

结构

1. 键值对(映射 / 字典)

键: 值 表示,键和值之间需用冒号加空格分隔(: 后必须有空格)。

代码语言:javascript
复制
# 简单键值对
name: Alice
age: 25

# 嵌套键值对(通过缩进表示层级)
person:
  name: Bob
  contact:
    email: bob@example.com
    phone: 123456

2. 列表(序列 / 数组)

- (短横线 + 空格)表示列表项,同一列表的项需保持相同缩进。

代码语言:javascript
复制
# 简单列表
fruits:
  - apple
  - banana
  - orange

# 嵌套列表
hobbies:
  - sports:
      - basketball
      - swimming
  - reading

也可写成行内形式(用 [] 包裹,逗号分隔):

代码语言:javascript
复制
fruits: [apple, banana, orange]

3. 标量(基本数据类型)

  • 字符串:默认无需引号,含特殊字符(如空格、冒号)时需用单引号'或双引号"包裹 str1: hello world # 无引号 str2: 'It''s a cat' # 单引号内用 '' 表示单引号 str3: "Line1\nLine2" # 双引号支持转义字符(\n 换行)
  • 数字:整数、浮点数直接写 int: 42 float: 3.14 sci: 1e3 # 1000
  • 布尔值:用true/false 或 yes/no is_active: true is_deleted: false
  • null:用null或 ~ 表示空值。 empty: null nothing: ~
  • 日期时间:支持 ISO 格式 date: 2023-10-01 datetime: 2023-10-01T14:30:00+08:00

4. 复杂结构组合

键值对和列表可任意嵌套,形成复杂数据结构:

代码语言:javascript
复制
students:
  - name: Alice
    age: 20
    scores: [90, 85, 95]
  - name: Bob
    age: 21
    scores: [88, 92, 89]
  - name: Charlie
    age: 19
    scores: null

特殊语法

1. 锚点与引用(复用数据)

  • 用&锚点名称定义锚点(标记数据),用&引用锚点数据,避免重复写 base_info: &base country: China language: Chinese person1: <<: *base # 合并 base_info 的数据 name: Alice person2: <<: *base # 复用 base_info name: Bob 等价于: person1: country: China language: Chinese name: Alice person2: country: China language: Chinese name: Bob

2. 块级字符串

| 保留换行,用 > 折叠换行(将换行转为空格),适合多行文本。

代码语言:javascript
复制
# 保留换行(| 后加数字可控制空行保留,如 |2 保留2个空行)
multiline: |
  Line 1
  Line 2
  Line 3

# 折叠换行(> 后加 - 可去除末尾换行)
folded: >-
  This is a
  single line
  after folding
  • multiline 解析后为:"Line 1\nLine 2\nLine 3\n"
  • folded 解析后为:"This is a single line after folding"

四、常见错误

  1. 缩进不一致:同一层级的键或列表项缩进不同。
  2. 冒号后无空格:如 key:value(正确应为 key: value)。
  3. 列表项缺少 - :直接写内容会被解析为键值对。
  4. 字符串引号使用错误:单引号内无法解析转义字符(如 '\n' 会被当作字面量 \n)。

掌握 YAML 语法可显著提升配置文件的编写和维护效率

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-08-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程拾光 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 规则
  • 结构
  • 1. 键值对(映射 / 字典)
  • 2. 列表(序列 / 数组)
  • 3. 标量(基本数据类型)
  • 4. 复杂结构组合
  • 特殊语法
  • 1. 锚点与引用(复用数据)
  • 2. 块级字符串
  • 四、常见错误
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档