YAML 格式化/校验器

在线格式化、校验和美化 YAML。即时高亮显示带行号的语法错误。免费且完全在浏览器中运行。

使用方法

  1. 将 YAML 粘贴到输入区域
  2. 点击「格式化并校验」以美化并检查语法
  3. 如果 YAML 无效,错误消息将显示确切的行号和问题
  4. 调整缩进选择器以控制输出缩进
  5. 点击「复制」复制格式化结果,或点击「清空」重置

常见问题

  • 什么是 YAML 校验?

    YAML 校验检查文档是否遵循正确的 YAML 语法——正确的缩进、无重复键、有效的数据类型以及特殊字符的正确使用。

  • 格式化会改变我的数据吗?

    不会。格式化仅更改空白字符和缩进,数据结构和值保持完全不变。

  • 常见的 YAML 语法错误有哪些?

    常见错误包括:缩进不一致(混用制表符和空格)、键后缺少冒号、包含特殊字符(如 : 或 #)的未引用字符串,以及重复键。

  • 我的 YAML 会发送到服务器吗?

    不会。所有格式化和校验完全在浏览器中使用 js-yaml 库进行。您的数据永远不会离开您的设备。

  • YAML 和 JSON 有什么区别?

    YAML 是 JSON 的超集,支持注释、多行字符串,且更简洁。JSON 使用花括号和引号,而 YAML 使用缩进。YAML 常用于配置文件,JSON 常用于 API。

YAML 的语法特点

YAML(YAML Ain't Markup Language)的设计理念是"对人类友好",它用缩进来表示数据的层级关系,而非 JSON 的花括号,读写起来更像自然语言。

YAML 支持三种核心数据结构:

  • 映射(Mapping):键值对,用冒号加空格分隔,例如 name: Alice
  • 序列(Sequence):列表,每项以 - 开头
  • 标量(Scalar):字符串、数字、布尔值等基本值

此外,YAML 独有的功能包括:注释(以 # 开头)、多行字符串| 保留换行,> 折叠换行)、锚点与别名&anchor*alias,用于复用重复内容)。

常见语法错误

YAML 的缩进规则是语法错误的高发区:

混用制表符和空格:YAML 规范明确禁止使用制表符缩进,只允许空格。很多编辑器默认会把 Tab 键转为空格,但如果设置不当就会引入 Tab,导致解析失败。

冒号后缺少空格key:value 是错误的,必须写成 key: value(冒号后至少一个空格)。

字符串未加引号:包含 : , #, [, { 等特殊字符的值如果不加引号,YAML 解析器会产生歧义。例如 message: Hello: World 会被解析错误,需写成 message: "Hello: World"

布尔值陷阱:在 YAML 1.1 中,yes, no, on, off 都会被解析为布尔值,这常常造成意外。YAML 1.2 已修正此行为,但很多工具仍使用 1.1。

YAML 的主要使用场景

YAML 在以下领域已成为事实标准:

  • CI/CD 配置:GitHub Actions、GitLab CI、CircleCI 均使用 YAML 定义流水线
  • 容器编排:Kubernetes 的所有资源清单(Deployment、Service、ConfigMap)都是 YAML 文件
  • 应用配置:Spring Boot、Ruby on Rails、Ansible 等框架默认使用 YAML 配置
  • 静态网站:Jekyll、Hugo、Astro 等工具用 YAML frontmatter 定义页面元数据

格式化工具在这些场景中的价值在于:从 CI/CD 错误日志里复制出来的 YAML 片段往往缩进混乱,通过格式化可以快速整理并发现潜在的语法问题。