编码解码哈希加密格式化时间转换开发生成文本处理网络工具其他工具
首页 / 名词解释 / YAML

YAML

YAML(发音同 camel,名字是递归缩写 "YAML Ain't Markup Language")是一种以数据为中心的序列化格式,最常见的用途是写配置文件。它用缩进表示层级、用 key: value 表示键值对、用 - 开头表示列表项,因此比 JSON 少了大量括号和引号,更适合人手写和阅读。Kubernetes、Docker Compose、GitHub Actions、各类 CI/CD 都以它作为配置语言。

它的数据模型和 JSON 基本一致,都由映射(对象)、序列(数组)和标量(字符串/数字/布尔/null)组成;实际上 YAML 1.2 是 JSON 的超集,合法的 JSON 也是合法的 YAML,所以两者可以互相转换。使用时要注意几个易踩的点:

常见问题

YAML 和 JSON 是什么关系,该怎么选?
两者的数据结构完全对应,YAML 1.2 还是 JSON 的超集,可无损互转。JSON 更适合程序间传输(机器生成/解析),YAML 更适合人手写的配置(可读、可加注释)。
为什么我的 YAML 一直报缩进/解析错误?
最常见原因是用了 Tab 缩进——YAML 只允许空格。其次是 key、冒号后忘了加空格,或同一层级缩进空格数不一致。把编辑器设置为「Tab 转空格」通常能避免大部分问题。
为什么值 no 或 1.10 被解析成了意料之外的东西?
YAML 会自动推断标量类型:no/yes/on/off 会变布尔值(如国家码 NO 变成 false),1.10 会被当数字丢掉末尾零,前导零可能被解释为八进制。想强制当字符串,用引号包起来即可,如 "no"、"1.10"。

相关工具

相关名词