版本声明和选择器保持一致
默认版本为 2020-12。显式 $schema 与选择器冲突会报错,不会静默切换解释。Draft-07 的元组使用 items 数组,2020-12 使用 prefixItems;切换版本并不会迁移已有规则。
Schema 与实例校验
可先运行示例。只检查 Schema 无需实例;校验实例则同时检查 Schema 与数据。
输入与引用均在此浏览器处理,不上传校验数据,也不抓取远程引用。
准备好后手动校验。
JSON Schema 校验 能发现接口要求整数却返回字符串、必填字段缺失或对象出现额外键等问题。JSON 语法正确并不代表契约成立。把约束与实际响应并排查看,才能判断应该修改数据还是规则。
JSON Schema 验证不会替你修正输入。字段缺失与字段值为 null 是不同情况;default 注释也不会自动填入一个缺少的键。
JSON Schema 校验 报告同时展示实例路径与 Schema 路径。/users/0/age 的类型错误指向实际值;required 失败可能指向父对象,缺失字段名需要结合参数查看,不能把父路径当作错误字段已经存在。
不必把公共定义全部粘进主 Schema。导入文件按根绝对 $id 注册,相对引用依据基 URI 解析。文件名只用于展示,不能代替标识符,也不会触发同名文件猜测。
默认版本为 2020-12。显式 $schema 与选择器冲突会报错,不会静默切换解释。Draft-07 的元组使用 items 数组,2020-12 使用 prefixItems;切换版本并不会迁移已有规则。
只检查 Schema 会解析、元验证并编译主文件与全部导入依赖,不读取实例内容。每份引用文件需要唯一的绝对 $id,且不能包含 #。引用缺失会停止编译,不会跳过该约束继续通过。
手动校验支持 Ctrl/Cmd+Enter。修改输入、参数或引用会取消旧任务并禁用导出。示例替换、清空和删除引用先显示预览,应用后可以撤销一次,同时恢复输入与报告。
JSON Schema 校验 通过 Ajv 执行 Draft-07、2019-09 和 2020-12。组合规则与条件分支按对应版本解释;未知关键字会导致编译失败,不会因拼写错误而悄悄少检查一项。
JSON Schema 在线校验默认不执行 format。开启后使用 ajv-formats 内置规则检查 email、date-time、URI 和 UUID 等;未知格式会报编译错误。pattern 是独立约束,不受此开关控制。
语法错误、无效 Schema、缺失引用和实例不满足约束对应不同阶段。JSON Schema 校验器只允许导出完成的报告;引擎技术解释保留英文原文,界面提供本地化状态和错误类别。
引擎采用尽早失败策略,但组合分支仍可能产生多条错误。查看 instancePath、schemaPath、keyword 和参数;每次展示 50 条,下载的 JSON 包含完整获准生成的报告。
跟随 Schema 根部 $schema 声明,并与选择器保持一致。已有系统使用哪个版本就选择哪个版本;新规则默认采用 2020-12。元组、动态引用等语义存在差异,改下拉框并不能升级规则内容。
path 使用 JSON Pointer,例如 /items/0/name 指向 items 数组首项的 name。空字符串表示根,单独的 / 则指向空名称键,不能混为一谈。schemaPath 指出触发错误的规则位置。
缺失字段没有实际值可指向,因此 Ajv 的 instancePath 通常定位它应当所在的父对象。结合 params 中的 missingProperty 找字段名,不能只看父路径就去修改整个对象的类型。
false 会拒绝未被同一规则上下文中的 properties 或 patternProperties 接受的键。确认是不是拼写错误或有意新增字段,再决定修改数据还是允许该属性;工具不会替你删除它。
默认不校验。启用格式选项后才执行 ajv-formats 支持的检查,未知格式会导致编译失败。format 不代替 type;检查邮箱字符串时应同时声明字符串类型,pattern 则始终按规则执行。
遇到了需要复核的约束?