如何使用本地 Draft 7 Schema 校验 JSON?
填入待校验 JSON 和 JSON Schema Draft 7 规则,在可取消的浏览器 Worker 中检查。工具先用 Draft 7 元模式检查规则,再校验数据,不自动转换类型,也不填入默认值。
具体怎么操作?
- 粘贴 JSON 和 Draft 7 Schema,或分别打开两个本地文件,每份最多 2 MiB。
- 点击“运行”,检查 valid 标志和错误路径;JSON 语法正确也可能不符合规则。
- 修改数据或规则后重新运行,核对报告再复制或下载。
检查整数年龄字段
字符串 "21" 不是整数,改成数字 21 后可通过这份规则。校验不会改写原始数据。
输入:
JSON:{"age":"21"}
Schema:{"type":"object","properties":{"age":{"type":"integer","minimum":18}},"required":["age"]}
输出:
valid: false
instancePath: #/age
keyword: type什么时候适合使用?
检查数据契约时使用本工具;仅检查语法可用 JSON 格式化,提取字段可用 JSON 查询,构造测试数据可用模拟数据生成。通过校验仅说明符合所提供规则及已支持的 Draft 7 行为。
结果有哪些边界?
仅支持 Draft 7,省略 $schema 时按 Draft 7 处理,其他草案的关键字会被拒绝。未知扩展关键字会被忽略,不执行自定义代码。引用须在同一文档内解析。format 按引擎支持范围检查,不验证邮箱账号或网址是否真实可用。Schema 嵌套最多 100 层,报告最多显示 100 个错误,单次处理上限 15 秒。数字使用 JavaScript 精度,超大 ID 请保留为字符串。
遇到问题怎么办?
| 问题 | 处理方法 |
|---|---|
| 尚未校验数据就提示规则无效。 | Schema 语法、关键字取值或声明的草案版本不受支持。 使用 Draft 7 并检查关键字类型,将 prefixItems 等其他草案的写法改为 Draft 7 对应写法。 |
| 引用无法解析。 | 仅支持当前 Schema 文档内的 # 引用,不请求远程文件。 将外部规则合并到 definitions,再通过 #/definitions/name 引用。 |
常见问题
需要上传内容或注册账号吗?
不需要。处理在当前浏览器中完成;本站只提供页面和所需静态引擎资源。
为什么修改输入后结果消失?
工具会清除旧输出,避免把上次结果误当成新结果。更改输入或设置后,请重新运行。
参考资料
首次发布:根据当前工具界面核对步骤,补充示例和已知限制。