JSON Schema生成
样例JSON一键生成draft-07校验Schema
这个工具能做什么
JSON Schema 是一套用 JSON 本身来描述 JSON 数据结构的规范,常用于约束接口的请求体、响应体或配置文件格式。手写 Schema 很费时——你得逐个字段声明 type、把对象的字段塞进 properties、再列出 required 必填项,字段一多就容易漏写或写错。这个工具做的是反向的事:把一段真实的样例 JSON 粘进来,它替你推断出一份对应的 draft-07 Schema,省去从零敲模板的过程。它适合那种手上已经有数据、只想快速拿到一份可用 json 校验规则的场景,是最直接的 json 转 schema 方式。
工具在浏览器里把样例 JSON 解析成对象树,再递归遍历每个节点来推断结构。遇到字符串、数字、布尔、null 就直接映射成对应的 type;遇到对象就进入 properties,把每个键继续往下递归,并把当前对象里出现过的键全部登记进 required;遇到数组则取第一个元素作为样本,推断出 items 的结构。因为是递归下降的方式,多层嵌套的对象套数组、数组套对象都能一层层展开,最终拼成带缩进、方便阅读的 Schema 文本。整个过程是纯结构推断,只关心类型与层级,不涉及取值范围、正则这类语义约束。
最常见的用法是给后端接口补校验。比如你手上有一份订单接口返回的 JSON,想在网关或参数校验中间件里加一道格式检查,就把返回样例贴进来生成 Schema,再接到 ajv、python-jsonschema 之类的校验库里跑,接口一旦返回结构变形就能被拦下。另一个场景是写接口文档:OpenAPI/Swagger 里的 schema 段落本质就是 JSON Schema,用这个 schema 生成器先出一份骨架、再手动微调,比纯手写快很多。对前端来说,也能拿它给表单提交数据或本地存储的结构做一层运行时校验。
有几个边界值得留意。数组只按第一个元素推断 items,如果数组里元素结构不一致(比如混了不同形状的对象),生成结果只反映第一个,需要手动补 oneOf 或 anyOf。required 会把样例中出现过的键全列上,但出现过不等于业务上必填,可选字段要自己从 required 里删掉。此外工具只做类型层面的推断,像字符串的 format、数值的 minimum/maximum、枚举 enum 这类约束不会凭空猜出来,得按业务规则自行补充;null 值也只能推断成 null 类型,若该字段实际可空又可为字符串,需手动改成多类型。所有解析都在本地完成、不上传,贴敏感数据也不必担心。
JSON Schema生成是一个免费的在线工具,打开网页就能用,不用下载也不用注册。平时大家搜的“json schema生成”、“json转schema”、“json模式生成”,说的都是这个。
常见使用场景
- 给后端接口返回的样例 JSON 生成参数校验规则
- 写 OpenAPI 文档时快速得到 schema 骨架再微调
- 为前端表单提交的数据做运行时格式校验
- 约束配置文件结构,防止字段名或类型写错
- 从 mock 数据反推一份可直接用的校验模板
使用方法
- 把内容粘贴到输入框(生成类工具直接设置选项)。
- 按需要选择选项,点操作按钮。
- 结果出现在下方,点「复制结果」即可带走。