ZeroTool Workbench

YAML 语法验证器

在线验证 YAML 语法,精准定位错误行号和列号,验证成功后预览解析结构。免费,纯浏览器端运行,数据不离开本地。

100% 浏览器端运行 数据不离开你的设备 免费 · 无需注册

使用方法

  1. 将 YAML 内容粘贴到文本框中。
  2. 点击 Validate 按钮(或按 Ctrl+Enter)。
  3. 若 YAML 合法,显示绿色成功提示,并在下方展示解析后的 JSON 结构。
  4. 若 YAML 不合法,错误框中显示错误原因、行号、列号及问题代码片段。

错误输出说明

验证失败时,错误框包含以下信息:

  • 原因 — 错误的通俗描述(如 缩进错误、流结束异常)。
  • 行号与列号 — 错误在输入中的精确位置。
  • 代码片段 — 解析器提供的上下文,通常包含指向问题字符的 ^ 标记。

常见 YAML 语法错误

  • 缩进不一致 — YAML 要求统一使用空格(禁止 Tab)缩进,同级混用 2 格和 4 格缩进会导致解析错误。
  • 键后缺少冒号 — key value 是非法的,正确写法为 key: value。
  • 特殊字符未加引号 — 值中含有 :、#、[、]、{、} 等字符时,需要用引号包裹或转义。
  • Tab 字符 — YAML 禁止用 Tab 缩进,应将所有 Tab 替换为空格。
  • 重复键 — 同一映射块中出现重复键在 YAML 1.2 规范中是非法的。

示例:合法 YAML

server:
  host: localhost
  port: 8080
  tls: true

database:
  driver: postgres
  name: myapp
  credentials:
    user: admin
    password: "s3cr3t"

allowed_origins:
  - https://example.com
  - https://api.example.com

示例:非法 YAML(缩进错误)

server:
  host: localhost
   port: 8080   # 错误:多余的空格导致缩进不一致

验证器会报告检测到缩进不一致的行号和列号,便于快速定位并修复问题。

语法合法不等于结构正确

验证器报告的是语法错误。能解析的 YAML 结构也可能不对,所以要看「解析结构」预览。下面的文件里,carrot 少缩进了两个空格:

fruits:
  - apple
vegetables:
- carrot
  - spinach

验证器判定合法,预览显示 "vegetables": ["carrot - spinach"]:下一行被并进了 carrot,成为一个字符串。

YAML 1.1 与 1.2 对值的解读不同

本工具用 js-yaml 4.1.1,遵循 YAML 1.2;Python 常用的 PyYAML 遵循 YAML 1.1。同一份文件得到的数据不同:

YAML本工具(js-yaml 4.1.1)PyYAML 6.0.3 safe_load
debug: yes"yes"(字符串)True
country: NO"NO"(字符串)False
octal: 0777777511
time: 12:30"12:30"(字符串)750

文件会被 YAML 1.1 解析器读取时,给 "NO"、"yes"、"0777" 这类值加引号。

常见报错

输入验证器的报错
message: Error: something went wrongbad indentation of a mapping entry(1:15);给值加引号
host: 前面用了 Tabtab characters must not be used in indentation
同一映射里出现两次 timeoutduplicated mapping key
server 后面漏了冒号,下一行有缩进end of the stream or a document separator is expected

限制

  • 多个文档逐个检查。 用 --- 分隔多个文档的文件(如同时包含 Deployment 和 Service 的 Kubernetes 清单)用 js-yaml 的 loadAll 读取。全部有效时,预览是 JSON 数组,每个文档一项;有文档出错时,逐个列出每个文档的行范围,标明有效或给出错误,出错的 Service 不会掩盖有效的 Deployment。
  • 只检查语法。 不按 Kubernetes、GitHub Actions、Docker Compose 的 schema 校验,也不做风格检查。CI 里用 yamllint(yamllint .)。
  • 预览是 JSON。 锚点和 << 合并键在预览里已展开,注释不显示。

FAQ

YAML 验证器能检查哪些问题?

工具使用 js-yaml 解析器(符合 YAML 1.2 规范)检查语法错误。缩进错误、非预期字符、重复键、缺少冒号等问题均可捕获,并精确报告错误所在的行号和列号。

和 YAML 转 JSON 工具有什么区别?

转换器假定输入合法并进行格式转换;而验证器专注于判断 YAML 语法是否正确,提供详细错误信息帮助修复问题。本工具面向「检查并修复 YAML 语法错误」的使用场景,而非格式转换。

「解析结构预览」是什么?

当 YAML 语法合法时,工具会将其解析为数据对象,并以格式化 JSON 形式展示,方便直观确认数据结构是否符合预期,也可复制 JSON 结果供其他地方使用。

支持哪个 YAML 规范版本?

工具使用 js-yaml 4.x,实现 YAML 1.2 规范,支持锚点、别名、多行字符串、块/流序列及显式类型标签等常用 YAML 语法。用 --- 分隔多个文档的文件用 loadAll 读取,每个文档分别给出结果。

数据会上传到服务器吗?

不会。验证完全在浏览器中通过 JavaScript 完成,YAML 内容不会离开本地设备。