YAML 校验与格式化
粘贴 Docker Compose 文件、GitHub Actions 工作流、Kubernetes 清单或任何配置文件中的 YAML。输入时即时检查,用通俗的话解释每个错误并给出行号和列号,还会提醒可能被其他工具误读的值。有效的 YAML 可以转换为 JSON 或格式整齐的 YAML。不会上传任何内容。
免费 · 无需注册
使用方法
- 粘贴 YAML,打开 .yaml 或 .yml 文件,或加载一个示例。
- 查看输入框下方的状态。有效时显示键和文档的数量;有错误时显示行、列和修改方法。
- 点击“在输入框中显示”跳到错误处,并查看关于 yes、0755 等可能被其他工具误读的值的提示。
- 选择 JSON 或格式化的 YAML 以及缩进方式,然后复制或下载结果。
为什么使用这个工具
精确的错误位置
每个错误都会显示行号、列号、带指示符的片段,以及通俗易懂的说明。
不止语法检查
提前发现 yes 和 no、前导零、版本号以及冒号后缺空格等容易引发问题的写法。
YAML 转 JSON
把有效的 YAML 转成 2 或 4 个空格缩进或紧凑格式的 JSON。多个文档会变成一个 JSON 数组。
YAML 格式化
统一杂乱 YAML 的缩进,并按字母顺序排序键。
适用于真实配置
支持 Docker Compose、GitHub Actions、Kubernetes、Ansible 和 OpenAPI 文件,包括用 --- 分隔的多个文档。
保护隐私
校验在浏览器中完成,配置中的密钥等敏感信息不会被上传。
最常见的 YAML 错误
| 错误 | 原因 | 解决方法 |
|---|---|---|
| 缩进错误 | 某个键或列表项的空格比相邻行多或少 | 同一层级的项使用相同数量的空格对齐 |
| 用制表符缩进 | 这一行用 Tab 缩进 | 把制表符换成空格 |
| 键重复 | 同一映射中同一个键出现两次 | 删除其中一个或改名 |
| 冒号后缺空格 | 写成了 key:value | 写成 key: value |
| 值中含有冒号 | 像“备注: 重要”这样的值含有“: ” | 给值加上引号 |
| 引号或括号未闭合 | 打开了 " ' [ 或 { 却没有关闭 | 补上闭合字符 |
容易出乎意料的值
YAML 会猜测未加引号的值的类型。在 PyYAML、Ansible 和许多旧工具使用的 YAML 1.1 中,yes、no、on、off 会变成 true 或 false,所以挪威的国家代码 NO 会变成 false。像 0755 这样以零开头的数字可能被当作八进制,而版本号 1.10 会变成数字 1.1。
本工具遵循更严格的 YAML 1.2,并会提醒这些值。稳妥的做法是:凡是必须保持为文本的内容,例如版本号、代码、电话号码和邮政编码,都加上引号。
YAML 与 JSON 对比
| YAML | JSON | |
|---|---|---|
| 注释 | 支持,用 # | 不支持 |
| 结构 | 缩进 | 花括号和方括号 |
| 引号 | 通常可省略 | 键和文本必须加 |
| 一个文件多个文档 | 支持,用 --- 分隔 | 不支持 |
| 典型用途 | 人工编写的配置文件 | 程序之间交换数据 |
隐私
配置文件里常有密码、令牌和内部主机名。本工具在浏览器中使用开源库 js-yaml 解析 YAML,不会发送到任何地方。最近一次输入只保存在本浏览器中,下次打开时仍然在。
常见问题
怎样检查 YAML 是否有效?
把它粘贴到上方的输入框。状态行会立即显示是否有效。如果无效,会显示第一个错误的行号、列号以及修改方法。
为什么提示缩进错误?
同一层级的项必须从完全相同的列开始。通常是某一行多了或少了一个空格,或者某个列表项没有和上面的项对齐。
YAML 可以用 Tab 吗?
不可以。YAML 只允许用空格缩进。在这个编辑器中按 Tab 会插入两个空格。
会检查 Kubernetes 或 Docker Compose 的规则吗?
它检查 YAML 语法和常见陷阱,而不是某个工具的模式。文件可以是有效的 YAML,但仍可能有拼错的 Kubernetes 字段。
怎样把 YAML 转成 JSON?
粘贴有效的 YAML,右侧保持选择 JSON,然后点击“复制结果”或“下载”。包含多个 --- 文档的文件会变成一个 JSON 数组。
格式化时会保留注释吗?
不会。格式化的 YAML 和 JSON 是根据数据重新生成的,所以注释和锚点不会保留。左侧输入框中的原文不会改变。
相关工具
想开发什么吗?
告诉我们你想构建什么。
告诉我们您需要构建什么:从简单的网站到完整应用、AI 解决方案、自动化或定制系统都可以。