JSON Schema 校验
检查 JSON 数据是否满足约束。与 JSON 语法检查不同:一份能解析的 JSON 仍可能缺必填字段、类型错误或不符合接口规则。
输入与草案
左右分别填写 Schema 和待校验数据,也可打开 UTF-8 JSON 文件。每份最多 256 KiB、64 层和 30000 个节点。不自动保存或上传输入;离开前可保存规则、数据和报告。重复键、超出 JavaScript 可靠精度的数值会拒绝处理,请先消除重复键或将高精度数字表达为字符串。
支持 draft-07、2019-09、2020-12。自动模式依据根规则的 $schema 识别,未声明时使用 2020-12;手动选项与声明冲突会报错。支持对象和布尔 Schema,不是 OpenAPI、JTD 或所有旧版本 Schema 的通用验证器。数据类型不会被自动转换,不补默认值、不删除额外字段。
规则与错误
默认检查 format,采用 ajv-formats 提供的格式;关闭时 format 不参与校验。默认严格识别关键字,拼写错误或未识别关键字会报错。关闭严格关键字后,未识别的规则会显示提示;“通过”只代表满足引擎识别且本次启用的约束。
默认快速模式会在首先失败的分支停止;oneOf / anyOf 等可能产生多项分支错误。勾选“收集全部错误”会继续收集,处理可能更慢。最多保留 500 项错误,界面和导出都会标记截断,不能将该列表当作错误总全集。报告最多 4 MiB,超限会拒绝生成;较长的错误消息和元数据保留明确标记的预览,路径预览不影响原文定位。
错误的数据路径使用 JSON Pointer:根路径为空,显示为“根”;/ 分隔字段,~1 表示字段名中的 /,~0 表示 ~。点击“定位数据”选中原文值;缺少字段时选中其所属对象。点击“定位规则”定位根 Schema 对应位置;外部资源中的规则只显示引用路径,需在资源窗口检查。
引用与资源限制
支持 #/$defs 等内部引用。不会下载远程 $ref;需要其他文件时,在“引用资源”填写 URI → Schema 的 JSON 对象,最多 20 项,资源 $id 若存在必须与键一致,草案必须与根规则相同。未解析引用会明确报错,不会静默忽略。窗口可直接打开合并后的资源 JSON 文件。不支持异步 Schema 或自定义验证代码。
首次组件加载最多 30 秒,实际校验最多约 5 秒,超时终止后台线程;可主动取消。复杂正则、递归引用或组合规则可能触发预算,简化后可重试。这里的校验结果不替代实际服务端验证。
结果、导出与手机
修改任一输入或选项后旧报告立即失效,不能继续导出。报告 JSON 包含本次输入、版本、选项、时间、错误和定位信息,请按内容范围保存或分享。Ctrl / ⌘ + Enter 在两个主编辑器中执行;资源窗口不会触发校验。手机用“待校验数据 / Schema 规则”切换编辑,结果可一键返回数据或直接从错误定位。
引擎与格式库的许可见第三方说明。