查找工具

↑↓ 选择 Enter 打开

不知道工具名称时,可输入“格式化”或“计数”等任务词。

如何使用本地 Draft 7 Schema 校验 JSON?

发布与核对日期 · 作者 KitLumi Engineering

填入待校验 JSON 和 JSON Schema Draft 7 规则,在可取消的浏览器 Worker 中检查。工具先用 Draft 7 元模式检查规则,再校验数据,不自动转换类型,也不填入默认值。

打开免费工具 →

具体怎么操作?

  1. 粘贴 JSON 和 Draft 7 Schema,或分别打开两个本地文件,每份最多 2 MiB。
  2. 点击“运行”,检查 valid 标志和错误路径;JSON 语法正确也可能不符合规则。
  3. 修改数据或规则后重新运行,核对报告再复制或下载。

检查整数年龄字段

字符串 "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 引用。

常见问题

需要上传内容或注册账号吗?

不需要。处理在当前浏览器中完成;本站只提供页面和所需静态引擎资源。

为什么修改输入后结果消失?

工具会清除旧输出,避免把上次结果误当成新结果。更改输入或设置后,请重新运行。

参考资料

首次发布:根据当前工具界面核对步骤,补充示例和已知限制。

JSON Schema 校验 →