YAML 验证器
实时验证 YAML 语法,支持 YAML 与 JSON 互转及语法高亮。
YAML 输入
结果预览
什么是 YAML 验证器?
YAML (YAML Ain't Markup Language) 是一种人性化的数据序列化标准,广泛用于配置文件(如 Kubernetes、Docker Compose、GitHub Actions)。虽然 YAML 比 JSON 更易读,但其严格的缩进规则经常导致语法错误,且难以通过肉眼发现。
本工具提供实时的 YAML 语法检查,能够精准定位错误行。同时支持将 YAML 转换为标准 JSON 格式,方便在不同的系统间进行数据调试。所有操作均在本地浏览器完成,确保您的配置数据私密安全。
如何使用此工具
在左侧编辑区粘贴或编写您的 YAML 内容。状态栏会即时反馈语法是否正确,若有错误会显示具体的错误描述。您可以点击“加载示例”来查看标准的 YAML 结构。
当 YAML 合法时,您可以切换输出模式为“YAML”或“JSON”。右侧面板会根据选择显示带语法高亮的结果。点击“复制结果”即可将处理后的内容一键存入剪贴板。
典型生产场景
在执行 kubectl apply 前,将 Deployment、Service、Ingress 等资源 YAML 粘贴进来快速核查语法。YAML 缩进错误会导致 kubectl 报 "mapping values are not allowed",字段拼写错误则只在 apply 后通过 kubectl describe 才能发现。本工具可在提交前提前发现语法层面的问题。
验证 compose.yml 中服务定义的缩进和字段结构。常见错误包括:ports/volumes 列表缩进混乱、environment 块缩进层级错误、depends_on 格式不符合 Compose v2/v3 规范。将文件内容粘贴进来可在 docker compose up 前发现这些问题。
工作流文件(.github/workflows/*.yml)的语法错误只有在 push 触发后才会在 GitHub UI 中报错,调试周期长。将 workflow 文件粘贴进来验证 YAML 结构,可以快速确认 jobs/steps 的缩进关系是否正确,避免因格式问题导致 CI 流水线无法启动。
在执行 helm install/upgrade 前,验证 values.yaml 的 YAML 语法。Helm 渲染失败的常见原因之一是 values 文件中的缩进错误或特殊字符未加引号(如布尔类字符串未加引号导致类型推断错误)。先通过本工具确认语法无误,再进行 helm template 渲染调试。
YAML 高频陷阱
Tab 缩进与混合空格:YAML 标准完全禁止 Tab 字符用于缩进。在编辑器中粘贴 YAML 时,若 IDE 的自动转换关闭,极易引入 Tab 字符导致解析失败,错误信息通常为 "found a tab character where an indentation space is expected"。建议在 IDE 中将 .yaml/.yml 文件强制设置为空格缩进(VS Code:editor.insertSpaces: true)。
隐式类型转换陷阱:YAML 的自动类型推断在配置场景下容易产生意外。布尔类值(yes/no/on/off)会被自动解析为 Boolean,日期格式字符串(如 2024-01-15)会被解析为 Date 对象,以 0 开头的数字可能被解析为八进制。这在 Ansible 剧本或 Docker Compose 的 condition 字段中可能导致字符串变为布尔值。解决方案是对可能触发推断的值显式加引号。
锚点与别名的合并陷阱:YAML 锚点(&name)和别名(*name)通过 << : *base 合并时,后续同名键会覆盖锚点中的值——很多开发者误以为是追加合并。另外,js-yaml 等库序列化时默认展开所有别名引用,输出体积可能大幅增加。在生产配置文件中,建议优先使用显式重复而非锚点,以保证跨工具链的兼容性。
YAML 与 JSON 在线互转
YAML 转 JSON 是日常调试中最高频的需求之一:很多 API、日志系统和前端只接受 JSON,而配置文件却用 YAML 编写。本工具内置在线 YAML 转 JSON 功能——验证通过后切换输出模式为 JSON,即可得到带语法高亮、可一键复制的标准 JSON,无需安装 yq 或临时编写 python -c "import yaml,json" 这类一次性脚本。
需要注意互转中会丢失或改变的信息:YAML 注释转成 JSON 后会全部丢失,因为 JSON 不支持注释;锚点与别名会被展开为完整的重复内容;YAML 的多行字符串块(字面块与折叠块)会被合并为使用转义换行符的单行 JSON 字符串。反向的 JSON 转 YAML 则总是无损的,因为 JSON 是 YAML 的严格子集。
为什么用在线 YAML 验证器
在线 YAML 验证器最大的价值是「零环境依赖」:本地用 yamllint 校验需要安装 Python 和 pip 包,IDE 插件则绑定特定编辑器;而在线验证 YAML 只要一个浏览器,适合临时排查 CI 报错、在生产跳板机上快速核对配置,或在没有开发环境的同事电脑上使用。
与命令行工具相比,本在线验证器的另一优势是即时可视化:边输入边校验、精确到行列的错误定位、语法高亮,以及一键 YAML 转 JSON 对照。同时因为完全在浏览器本地运行,它兼顾了在线工具的便捷与本地工具的隐私——配置数据不出本机。