YAML 校验与格式化

粘贴 Docker Compose 文件、GitHub Actions 工作流、Kubernetes 清单或任何配置文件中的 YAML。输入时即时检查,用通俗的话解释每个错误并给出行号和列号,还会提醒可能被其他工具误读的值。有效的 YAML 可以转换为 JSON 或格式整齐的 YAML。不会上传任何内容。

免费 · 无需注册

粘贴 YAML、打开文件或加载示例。输入时会自动检查。

结果
转换为

    
缩进

解析库: js-yaml (MIT).

使用方法

  1. 粘贴 YAML,打开 .yaml 或 .yml 文件,或加载一个示例。
  2. 查看输入框下方的状态。有效时显示键和文档的数量;有错误时显示行、列和修改方法。
  3. 点击“在输入框中显示”跳到错误处,并查看关于 yes、0755 等可能被其他工具误读的值的提示。
  4. 选择 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 对比

YAMLJSON
注释支持,用 #不支持
结构缩进花括号和方括号
引号通常可省略键和文本必须加
一个文件多个文档支持,用 --- 分隔不支持
典型用途人工编写的配置文件程序之间交换数据

隐私

配置文件里常有密码、令牌和内部主机名。本工具在浏览器中使用开源库 js-yaml 解析 YAML,不会发送到任何地方。最近一次输入只保存在本浏览器中,下次打开时仍然在。

常见问题

怎样检查 YAML 是否有效?

把它粘贴到上方的输入框。状态行会立即显示是否有效。如果无效,会显示第一个错误的行号、列号以及修改方法。

为什么提示缩进错误?

同一层级的项必须从完全相同的列开始。通常是某一行多了或少了一个空格,或者某个列表项没有和上面的项对齐。

YAML 可以用 Tab 吗?

不可以。YAML 只允许用空格缩进。在这个编辑器中按 Tab 会插入两个空格。

会检查 Kubernetes 或 Docker Compose 的规则吗?

它检查 YAML 语法和常见陷阱,而不是某个工具的模式。文件可以是有效的 YAML,但仍可能有拼错的 Kubernetes 字段。

怎样把 YAML 转成 JSON?

粘贴有效的 YAML,右侧保持选择 JSON,然后点击“复制结果”或“下载”。包含多个 --- 文档的文件会变成一个 JSON 数组。

格式化时会保留注释吗?

不会。格式化的 YAML 和 JSON 是根据数据重新生成的,所以注释和锚点不会保留。左侧输入框中的原文不会改变。

相关工具

想开发什么吗?

告诉我们你想构建什么。

告诉我们您需要构建什么:从简单的网站到完整应用、AI 解决方案、自动化或定制系统都可以。

告诉我们您想构建什么。我们会查看每一份咨询并通过邮件回复。

联系

感谢您,咨询已发送。

我们会查看详细信息并通过邮件回复。