JSON Schema 验证器
根据 JSON Schema 验证 JSON 数据。获取包含精确路径的详细错误消息。
JSON Schema 最佳实践
编写更好的 Schema,捕获更多验证错误。
从必填字段开始
先定义 required 数组,然后为每个属性添加类型约束。这可以尽早捕获缺少的字段,并清楚地记录数据契约。
使用描述性错误消息
为 Schema 中的每个属性添加 description 字段。当验证失败时,这些描述帮助开发者理解期望的数据。
利用 Schema 组合
使用 allOf、anyOf 和 oneOf 从简单的 Schema 组合复杂的 Schema。这促进了重用并保持 Schema 的 DRY 原则。
在 CI/CD 流水线中验证
在构建流水线中使用 JSON Schema 验证来捕获无效的配置、测试数据或 API 契约违规。这可以防止生产环境中的运行时错误。
Schema 验证功能
全面的 JSON Schema 验证工具。
Schema 草案支持
支持 JSON Schema 草案 4、6、7、2019-09 和 2020-12 规范。
详细错误报告
获取精确的错误消息,JSON 路径精确指向验证失败的位置。
并排视图
并排查看 JSON 数据和 Schema,便于交叉引用。
什么是 JSON Schema?
JSON Schema 是一种词汇,用于验证 JSON 数据的结构和内容,描述 JSON 文档的预期形态、类型和约束——类似于数据库 Schema 定义表结构。
基本示例
要求包含 "name"(字符串)和 "age"(数字)字段的 Schema:
{
"type": "object",
"required": ["name", "age"],
"properties": {
"name": { "type": "string" },
"age": { "type": "number", "minimum": 0 }
}
}有效数据
{ "name": "Alice", "age": 30 }无效数据
{ "name": 123, "age": -5 }常用关键字
type定义期望的类型:string、number、object、array、boolean、null
required列出对象中必须存在的属性名
properties为对象的各属性定义 Schema
items数组元素的 Schema——对每个元素进行验证
enum将值限制在固定的允许值列表内
pattern使用正则表达式验证字符串
JSON Schema 验证器常见问题
什么是 JSON Schema?
JSON Schema 是一种用于注释和验证 JSON 文档的词汇。它定义了 JSON 数据应遵循的结构、类型和约束。
支持哪些 Schema 草案?
验证器支持 JSON Schema 草案 4、6、7、2019-09 和 2020-12。草案版本从 $schema 关键字自动检测。
可以验证嵌套对象吗?
可以,验证器完全支持嵌套 Schema,包括 $ref 引用、allOf/anyOf/oneOf 组合器和递归 Schema。
如何在 Schema 中指定必填字段?
在与 properties 同级添加 required 数组,包含必填字段的名称。然后在 properties 下定义类型约束进行验证。
anyOf、oneOf 和 allOf 有什么区别?
allOf 表示数据必须匹配所有列出的 Schema。anyOf 表示必须匹配至少一个。oneOf 表示必须精确匹配一个。
验证器会检查 Schema 本身的错误吗?
是的,Schema 必须是有效的 JSON 并符合 JSON Schema 语法。如果 Schema 有结构问题,验证器将报告 Schema 级别的错误。
可以使用 $ref 引用共享定义吗?
可以,完全支持同一 Schema 文档中的内部 $ref 引用。这允许您在 definitions 或 $defs 部分定义可重用的子 Schema。
相关工具
探索更多 JSON 工具,提升你的工作效率。