参考资料

  1. YML基础语法
  2. YAML 基础语法及示例

YAML 基础语法及示例

1. 缩进

  • 使用空格(2或4个),不能使用Tab

  • 同一层级缩进必须一致。

# 正确
person:
  name: Alice
  age: 30

# 错误(缩进不一致)
person:
  name: Alice
   age: 30

2. 键值对

key: value 格式,冒号后必须有空格。

name: John
age: 25

3. 列表(数组)

- 开头,元素缩进一致。

fruits:
  - apple
  - banana
  - orange
# 或内联格式
fruits: [apple, banana, orange]

4. 字典(映射)

通过缩进嵌套。

person:
  name: Bob
  address:
    city: New York
    zip: "10001"

5. 多行字符串

  • 保留换行|):保持原样

  • 折叠换行>):将换行替换为空格

# 保留换行
description: |
  Line 1
  Line 2
  Line 3
# 输出: "Line 1\nLine 2\nLine 3\n"

# 折叠换行
summary: >
  This is a
  long summary that
  will be folded.
# 输出: "This is a long summary that will be folded.\n"

6. 布尔值

true/falseyes/noon/off(大小写不敏感)

active: true
enabled: yes
visible: off

7. 数字

整数、浮点数、科学计数法直接书写。

count: 42
pi: 3.14
speed: 1.5e3   # 1500
hex: 0x1A      # 26(十六进制自动转换)

8. 空值

null~ 或空字符串(key: 不带值也会解析为 null)。

empty: null
also_null: ~
nothing:

9. 注释

# 开头,支持行内(但部分解析器可能不支持行尾注释)。

# 这是注释
key: value  # 行内注释(部分解析器支持)

10. 锚点与别名(&*

复用数据,避免重复。

defaults: &defaults
  adapter: postgres
  host: localhost

production:
  database: prod_db
  <<: *defaults   # 合并 defaults 的内容
  # 等价于:database: prod_db, adapter: postgres, host: localhost

test:
  database: test_db
  <<: *defaults

11. 类型转换(!!

强制指定数据类型。

age: !!str 25        # 强制为字符串 "25"
number: !!int "123"  # 强制为整数 123

12. 多文件(---...

--- 分隔多个文档,... 表示文档结束(可选)。

---
document1:
  key: value
...
---
document2:
  list: [1,2,3]

13. 特殊字符转义

使用双引号包裹可转义(" \n \t 等),单引号只保留原文字符。

# 双引号转义
str1: "He said \"hello\"\n"
# 单引号不转义(内部单引号需重复)
str2: 'Don''t worry'   # 输出 Don't worry

14. 复杂嵌套示例

# 配置文件示例
server:
  host: 0.0.0.0
  port: 8080
  https: false

databases:
  -

声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。