YAML 格式化/校验器
在线格式化、校验和美化 YAML。即时高亮显示带行号的语法错误。免费且完全在浏览器中运行。
使用方法
- 将 YAML 粘贴到输入区域
- 点击「格式化并校验」以美化并检查语法
- 如果 YAML 无效,错误消息将显示确切的行号和问题
- 调整缩进选择器以控制输出缩进
- 点击「复制」复制格式化结果,或点击「清空」重置
常见问题
-
什么是 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 片段往往缩进混乱,通过格式化可以快速整理并发现潜在的语法问题。