YAML 语法检查器

粘贴不超过 1,000,000 个字符的 YAML。检查在此浏览器中完成。

下一步

无需上传数据即可检查 YAML 语法。校验器在浏览器里读取单份文档或包含多份文档的流。读取失败时,它会指出解析器停下的行和列,并把前后几行连同正下方的指示符一起显示出来。读取成功时,它还会列出没有按你写的文字保存下来的值,例如以零开头的邮政编码。同一映射中的重复键是错误,而锚点、别名和合并键会在解析器配置的安全上限内处理。

如何检查 YAML

  1. 1

    粘贴 YAML

    粘贴不超过 1,000,000 个字符的 YAML 文本。本工具不支持上传文件。

  2. 2

    运行本地解析器

    解析器在这个浏览器内读取单份文档,或读取用 `---` 分隔的文档流。

  3. 3

    看结论

    第二步会说明这个流能否读取;读不了时,它会指出确切的行和列。一个流最多包含 100 份文档。

  4. 4

    核对取值

    最后一步列出读取过程中改变含义的值,并一键复制整份报告。

可以检查哪些 YAML

工具使用 js-yaml 的 loadAll 解析单文档流和多文档流:

name: first
enabled: true
---
name: second
items:
  - one
  - two

此示例包含两个文档。如果语法被接受,结果会说明两个文档已成功解析。文档分隔符、块映射、序列和流式写法都会按照 YAML 语法进行处理。

解析器的行为

这个工具在你的浏览器里运行解析器 js-yaml,遵循 YAML 1.2。同一映射中的重复键会报错,而不是悄悄替换掉一个值。锚点、别名和合并键会在解析器配置的安全上限内处理。

文档读取失败时,结果会指出解析器停下的行和列,并打印前后几行,正下方带有指示符,方便你直接跳过去。

同一个映射中的重复键会导致错误。锚点、别名以及 << 合并键会在解析器默认的安全限制内处理。这些写法在语法上通过,并不保证目标应用会以相同方式解释。

看起来是一回事、存下来是另一回事的值

一个文件可以毫无报错地读完,存下来的却不是你敲进去的东西。YAML 的大部分意外都由此而来,所以读取成功时,结果会把发生这种情况的每一行都列出来:

你写的 这里存成 YAML 1.1 解析器存成
zip: 01234 数字 1234 数字 668
version: 1.10 数字 1.1 数字 1.1
country: NO 文字 NO false
start: 22:22 文字 22:22 数字 1342
date: 2026-01-01 日期 日期

加引号可以解决每一行:zip: "01234" 在任何解析器里都会存成文字。只要同一个文件还会被 PyYAML、Ruby Psych 或别的 YAML 1.1 实现读取,最后一列就很重要,因为两者可能把同一行理解成不同的东西。

语法检查不等于应用验证

成功结果只说明 js-yaml 能用此架构读取文本。它不会验证 JSON Schema、OpenAPI、Kubernetes、Ansible,或其他产品的必填字段和业务规则。一份 Kubernetes 清单即使语法正确,也可能缺少 apiVersion 或使用错误值。

工具不会显示解析后的数据树,不会格式化 YAML,不提供 YAML 1.1 或自定义架构选项,也不支持上传文件。如果应用有自己的架构,请在语法检查后使用对应的专用验证器。

限制与隐私

输入不能超过 1,000,000 个字符,一个流不能超过 100 个文档。第一处语法错误可能会停止整个流的解析,请修复错误信息后重试。YAML 文本、核对步骤和结果只留在浏览器中,不会发送到我们的服务器,不会写入 URL,也不会保存到历史记录。重新开始会清除当前本地工作。

常见问题

可以。loadAll 会一起解析最多 100 个以 --- 分隔的文档,成功结果会显示文档数量。

不可以。没有 YAML 1.1 模式,也不能选择自定义架构,工具遵循 YAML 1.2。不过,如果某个值会被 PyYAML 这类 YAML 1.1 解析器读成别的东西,结果会逐行告诉你。

只检查 YAML 语法。Kubernetes、OpenAPI、Ansible 和 JSON Schema 规则需要各自的架构验证器。

不会。输入、核对步骤和结果都留在浏览器中,内容也不会进入我们的服务器、URL 或历史记录。

相关工具

此工具还提供其他语言版本