YAML Schema 校验工具

用 JSON Schema(draft-07)校验 YAML 数据:左栏粘贴 Schema,右栏粘贴 YAML,实时校验并精确定位错误路径。复用 JSON Schema 校验引擎,覆盖 type、required、properties、items、enum、数值范围、字符串约束、数组唯一性、$ref 内部引用等核心关键字。额外检测 YAML 类型推断陷阱(on/yes/no/off 布尔化、版本号被解析为数字),适用于 Kubernetes 清单、CI/CD 配置、Helm values、docker-compose 等场景。数据仅在浏览器本地处理,敏感配置不外传。

校验结果

输入 Schema 与 YAML 数据后将自动校验,或点击「载入示例」快速体验。

常见问题

为什么用 JSON Schema 校验 YAML 数据?

JSON Schema 是描述数据结构的标准,与数据格式无关。YAML 解析后会得到与 JSON 等价的 JS 对象(对象、数组、字符串、数字、布尔、null),因此完全可以用 JSON Schema 校验 YAML。实际上 Kubernetes 就是这么做的——K8s 资源用 YAML 编写,但校验用的是 OpenAPI(基于 JSON Schema 子集)。本工具让你无需手动转 YAML 为 JSON 即可直接校验。

支持哪些 YAML 特性?

底层使用 js-yaml 解析,支持:多文档(--- 分隔,仅校验第一个文档)、锚点(&anchor)与别名(*alias)、块样式与流样式、注释。注意:多文档 YAML 仅校验第一个文档,若需校验全部文档请逐个粘贴。YAML 的特殊类型(如 !!timestamp 日期、!!binary 二进制)会按解析后的 JS 类型参与校验。

什么是 YAML 类型推断陷阱?

YAML 1.1 会自动推断无引号值的类型:yes/no/on/off 被解析为布尔值,null/~ 被解析为 null,1.25 被解析为数字,2024-01-01 被解析为日期。这会导致 replicas: on 被当作布尔 true、image: nginx:1.25 中的版本号被当作数字等隐蔽 bug。本工具自动扫描并提示这些陷阱,建议对易误解的值加引号(如 replicas: "on"version: "1.25")。

适用于哪些场景?

Kubernetes 资源清单(Deployment/Service/Pod/ConfigMap 等)校验、CI/CD 配置(GitHub Actions / GitLab CI / CircleCI)校验、Helm values.yaml 校验、docker-compose.yml 校验、Prometheus 规则校验、任意 YAML 配置文件结构校验。只要能写出对应的 JSON Schema,就能校验任意 YAML 数据结构。

与 JSON Schema 校验工具有何区别?

两者共用同一套 draft-07 校验引擎,区别在数据输入格式:JSON Schema 工具校验 JSON 数据,本工具校验 YAML 数据。如果你写的是 JSON 用前者,写的是 YAML 用本工具。YAML 版本额外提供类型推断陷阱检测,JSON 不存在此问题(JSON 类型严格)。

数据会上传到服务器吗?

不会。本工具完全在浏览器内运行,Schema 与 YAML 数据均由 JavaScript 在本地校验,不会发送到任何服务器。对于包含敏感信息的 K8s Secret 配置或生产环境配置,本地校验更安全。

校验失败后如何定位问题?

结果区会列出每条错误:关键字徽章(按类型分类着色)+ 实例路径(JSON Pointer 风格,如 /spec/replicas)+ 中文消息。点击错误项可高亮该路径。若错误由 YAML 类型推断陷阱引起(如 on 被解析为布尔),结果区同时显示类型提示,建议加引号修复。