yaml 格式

yaml 格式

基本概念

  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进的空格数不重要,只要相同层级的元素左对齐即可

注释

# 这是注释
number: 5 # 行尾注释

数据结构

YAML 支持的数据结构有三种:对象、数组、纯量

对象

对象是一组键值对,使用冒号结构表示:

animal: cat

转为 JSON 如下:

{ "animal": "cat" }

对于下面内容:

navbar:
  displayLogo: true
  logo:
    path: /a.png

转为 JSON 如下:

{
    "navbar": {
        "displayLogo": true,
        "logo": { "path": "/a.png" }
    }
}

数组

一组以 - 开头的行构成一个数组:

- cat
- dog
- bird

转为 JSON 如下:

["cat", "dog", "bird"]

数组的元素是一个数组:

-
  - cat
  - dog
  - bird

转为 JSON 如下:

[["cat", "dog", "bird"]]

稍微复杂的结构:

menu:
  main:
    - name: 文档
      pageRef: /docs
    - name: 博客
      pageRef: /blog

转为 JSON 如下:

{
    "menu": {
        "main": [
            { "name": "文档", "pageRef": "/docs" },
            { "name": "博客", "pageRef": "/blog" }
        ]
    }
}

纯量

包括整数、浮点数、布尔值、Null、日期、时间、字符串 整数:

number: 12

浮点数:

money: 20.5

布尔值:

hidden: true

Null 用 ~ 表示:

title: ~
# 也可以将值直接空着表示 Null
description:

日期:

date: 2025-07-17

时间:

time: 2025-07-17T15:02:31+08:00

字符串

字符串可以使用也可以不使用引号:

title: 'Book Life'
autor: "Emily"
description: new book released

多行字符串:

this: |
  Foo
  Bar

转为 JSON 如下:

{ "this": "Foo\nBar\n" }

+ 保留末尾的换行,- 删除末尾的换行

s1: |
  Foo

s2: |+
  Foo

s3: |-
  Foo

转为 JSON 如下:

{ "s1": "Foo\n", "s2": "Foo\n\n", "s3": "Foo" }
最后更新于