JSON Schema 校验工具
基于 draft-07 标准实现的轻量校验器:支持 type、required、properties、items、enum、const、数值范围、字符串约束、数组唯一性、对象额外属性、allOf/anyOf/oneOf/not 组合与 $ref 内部引用。实时校验、错误路径精确定位、关键字分类徽章,适用于 API 请求体校验、配置文件验证、表单数据校验。数据仅在浏览器本地处理,敏感信息不外传。
校验结果
常见问题
什么是 JSON Schema?
JSON Schema 是描述 JSON 数据结构的标准。它本身也是一个 JSON 对象,用关键字(如 type、required、properties)声明数据必须满足的约束。常用于 API 请求 / 响应校验、配置文件验证、表单数据校验、OpenAPI / Swagger 文档定义。当前主流版本为 draft-07(2020-12 为更新草案)。
本工具支持哪些 draft-07 关键字?
支持的类型关键字:type(单值或数组)、enum、const;对象关键字:required、properties、patternProperties、additionalProperties、minProperties、maxProperties;数组关键字:items(单 schema 与元组模式)、additionalItems、minItems、maxItems、uniqueItems;字符串关键字:minLength、maxLength、pattern、format;数值关键字:minimum、maximum、exclusiveMinimum、exclusiveMaximum、multipleOf;组合关键字:allOf、anyOf、oneOf、not;引用关键字:$ref(同文档内部引用,如 #/definitions/User)。
$ref 内部引用如何使用?
在 Schema 顶层定义 definitions 或 $defs 对象,内部通过 "$ref": "#/definitions/User" 引用。本工具仅支持同文档内部引用(以 #/ 开头的 JSON Pointer),不支持跨文档外部引用。循环引用(如 A 引用 B、B 又引用 A)会被自动检测并跳过,避免无限递归。
format 校验支持哪些格式?
支持 9 种常见 format:date-time(RFC 3339 日期时间)、date(YYYY-MM-DD)、time(HH:MM:SS)、email、uri(含协议头的 URI)、ipv4、ipv6、uuid、hostname。format 校验默认开启,若需关闭可移除 schema 中的 format 字段。注意本工具的 format 校验为启发式正则实现,与 ajv 等严格实现可能在边界用例上存在差异。
与 ajv 有何区别?
ajv 是功能最完整的 JSON Schema 校验库(支持 draft-04 到 2020-12 全部关键字、自定义 format、外部 $ref、异步校验、编译优化等),bundle 体积较大(min 约 130KB+)。本工具为轻量自实现,仅覆盖 draft-07 核心 80% 场景,零依赖、bundle 小(约 10KB),适合在浏览器端快速校验常见 schema,不适合需要严格规范一致性或复杂外部引用的场景。
数据会上传到服务器吗?
不会。本工具完全在浏览器内运行,Schema 与数据均由 JavaScript 在本地校验,不会发送到任何服务器,敏感信息更安全。
校验失败后如何定位问题?
结果区会列出每条错误:关键字徽章(按类型分类着色)+ 实例路径(JSON Pointer 风格,如 /users/0/email)+ 中文消息。点击错误项可高亮该路径,便于多次比对。点击「复制错误」可导出纯文本错误列表,方便贴到 issue 或文档中。