YAML是什么:概念、原理与常见用途

69 0

YAML 是一种以缩进表示层级的数据序列化格式,名字是“YAML Ain't Markup Language”的递归缩写。下面重点说明概念、原理与常见用途。

YAML是什么

YAML 是一种以缩进表示层级的数据序列化格式,名字是“YAML Ain't Markup Language”的递归缩写。它可读性好、支持注释,广泛用于配置文件,如 Docker Compose、Kubernetes、GitHub Actions。YAML 1.2 是 JSON 的超集。

  • 用空格缩进表示层级,不能用 Tab
  • “键: 值”表示映射,冒号后必须有空格
  • “- ”开头表示列表项

示例

输入:

server:
  host: 127.0.0.1
  port: 8080

YAML 转 JSON结果:

{
  "server": {
    "host": "127.0.0.1",
    "port": 8080
  }
}

说明:用 YAML 1.1 解析器(PyYAML safe_load)解析后输出为 JSON。

工作原理

YAML 解析器根据缩进判断层级:同一缩进的行属于同一个映射或列表;然后对没有引号的标量做类型推断——数字、布尔值、null、日期会被转成相应类型,这既方便也容易出错。

规则说明

  • 缩进只能用空格,同一层级缩进必须一致
  • | 保留换行的多行文本,> 折叠为一行
  • ~ 或 null 表示空值
  • &锚点 和 *别名 用于复用内容
  • YAML 1.1 中 yes/no/on/off 会被解析成布尔值

本站的YAML/JSON互转工具可以直接处理,计算在浏览器本地完成,适合快速核对结果。

常见问题

【YAML 能用 Tab 缩进吗?】不能,只能用空格。

【为什么 NO 变成了 false?】YAML 1.1 把 yes/no/on/off 当作布尔值,需要字符串时加引号。

【YAML 和 JSON 能互转吗?】可以,YAML 1.2 是 JSON 的超集,但注释和锚点转换为 JSON 后会丢失。

文中示例可以在本站对应工具中验证;处理密码、证件号等敏感数据时,请注意保护隐私。

署名:123问编辑部 · 最近修订:2026-11-11 · 已按编辑与审核说明检查;内容仅供参考,不构成医疗、法律或投资建议。发现错误可查看纠错方式。

标签: 文本处理

抱歉,评论功能暂时关闭!