JSON 模式验证器
粘贴一个模式和一个文档,选择草案,验证器便会将文档与您模式中使用的每个关键词进行比对,type、required、enum、oneOf、$ref、if/then/else、自定义 format,并为每处违规生成报告,其中包含指向具体违规位置的 JSONPath 风格指针。
如何根据模式进行验证
-
1
粘贴模式
JSON 模式草案 04、07 或 2020-12。若存在 `$schema` 关键词,系统将自动选择相应的草案版本。
-
2
粘贴文档
要验证的 JSON。必须先是有效的 JSON,语法错误会在模式评估之前显示。
-
3
验证
每处违规都会附带 JSON 指针(`/user/email`)以及失败的关键词(`format`、`required` 等)。
-
4
修复并重新验证
编辑任意一侧,状态即刻实时更新。
支持的关键词
核心:type、enum、const、multipleOf、maximum、minimum、exclusiveMaximum、exclusiveMinimum、maxLength、minLength、pattern、maxItems、minItems、uniqueItems、maxContains、minContains、maxProperties、minProperties、required、dependentRequired。
组合:allOf、anyOf、oneOf、not。
应用器:properties、patternProperties、additionalProperties、items、prefixItems、contains、propertyNames。
条件:if、then、else、dependentSchemas。
引用:$ref、$defs、$id、$anchor。
格式(启用时会进行验证):date-time、date、time、duration、email、hostname、ipv4、ipv6、uri、uuid、regex。
错误输出
FAIL /user/email format "not-an-email" is not a valid "email"
FAIL /user/age minimum -3 is less than the minimum 0
FAIL /orders/0/total type "42" is not of type "number"
FAIL / required missing required property "shippingAddress"
每条错误都包含失败的路径和关键词,便于您在编辑器中快速定位。
那些真正棘手的草案差异
| 关键词 | 草案 04 | 草案 07 | 草案 2020-12 |
|---|---|---|---|
id 与 $id |
id |
$id |
$id |
exclusiveMaximum 作为布尔值 |
是 | 数字 | 数字 |
items 数组语法 |
items |
items |
prefixItems |
$ref 是否允许同级关键词 |
否 | 否 | 是 |
请设置正确的草案;将草案 04 的模式当作 2020-12 来验证,会错误解读 id 及其他一些细微差别。
典型工作流程
- API 契约测试:部署前,将生成或更新后的 OpenAPI 模式与真实的示例响应进行比对验证。
- 配置加固:合并前,在 CI 中将每个 YAML/JSON 配置与模式进行验证。
- 数据摄入:尽早拒绝与预期结构不符的载荷,并给出清晰的错误提示。
常见错误
- 忘记强制执行
format。 默认情况下,大多数验证器将未知格式仅视为注释。请启用严格格式验证,以真正拒绝无效的电子邮件和日期。 - 过度使用
oneOf。 若oneOf的两个分支存在重叠,文档将无法通过验证(必须恰好匹配其中一个)。请使用anyOf或判别器模式。 - 使用
additionalProperties: false的严格模式。 添加新的可选字段会变成破坏性变更。除非您确实需要一个封闭对象,否则请勿设置它。
常见问题
支持。草案 2020-12、07 和 04 均受支持。验证器会从您的文档中读取 $schema 关键词以选择正确的版本,若无法识别则回退到界面中的选择器。
启用严格格式验证时,标准格式(email、date-time、uuid、ipv4 等)会得到验证。您在模式中声明的自定义格式默认仅作为注释处理,除非您为其提供带 pattern 的正则表达式。
内部引用(#/$defs/foo)会自动解析。出于安全考虑,外部 HTTP 引用默认不会被获取。请先将外部引用内联,或使用支持远程 $ref 解析的专用工具。
是的。模式和文档都保留在本地。粘贴的内容绝不会上传,非常适合内部 API 契约和敏感数据。
相关工具
ASCII 表参考
完整 ASCII 表,覆盖 0 到 127;列出每个代码的十进制、十六进制、八进制、二进制值和 HTML 数字字符引用写法,包括 NUL、LF、DEL。
HTML 字符参考
可搜索的 HTML 实体列表,含命名代码与数值代码,并支持一键复制特殊字符和符号。
键盘快捷键参考
搜索 macOS、Windows 和 Linux 上 VS Code、Chrome 以及使用 GNU Readline 的 Bash 的文档默认快捷键。
邮箱验证器
验证邮箱地址:RFC 5322 语法检查、实时 MX 记录查询,并显示本地部分、域名和长度详情。不会发送任何邮件。
编辑器配置生成器
根据你的缩进样式与大小、行尾、字符集和空格规则生成 .editorconfig 文件,让不同集成开发环境(IDE)和编辑器的格式保持一致。
证书解码器
粘贴一张 X.509 PEM 证书,并查看解码后的字段:主体、颁发者、序列号、签名算法、有效期及主体备用名称(SAN)。
此工具还提供其他语言版本
- Trình xác thực JSON Schema [VI]
- JSON-Schema-Validator [DE]
- Validador de JSON Schema [PT]
- JSON 스키마 검증기 [KO]
- เครื่องมือตรวจสอบ JSON Schema [TH]
- أداة التحقق من مخطط JSON [AR]
- JSON Schema-validator [SV]
- JSON Schema-validator [NL]
- Validateur de schéma JSON [FR]
- Walidator JSON Schema [PL]
- Penentu Struktur JSON [ID]
- JSONスキーマバリデーター [JA]
- Validador de JSON Schema [ES]
- JSON Schema Validator [EN]
- Validator di JSON Schema [IT]
- Валидатор JSON Schema [RU]
- JSON Şeması Doğrulayıcı [TR]