JSON 转 Schema
从样例 JSON 反推 draft-07 Schema 底稿,format 自动嗅探。
请粘贴一份样例 JSON(对象或数组)。
原因:类型定义从样例数据反推,样例为空无从推断。
建议:贴接口响应示例、配置文件或测试数据均可,对象数组最佳。
推断的 JSON Schema(draft-07 底稿,按需手改)
粘贴样例 JSON 后,Schema 底稿会显示在这里。
使用说明
这个工具解决什么问题
手写 JSON Schema 又长又容易漏:类型、required、items 一层层套。手头明明有一份能跑通的样例,规则就在里面。这个工具粘贴样例 JSON 即可反推一份 draft-07 Schema 底稿:对象字段默认全部写入 required(可关),字符串做轻量格式嗅探,混合类型数组生成 type 数组。产出定位是底稿——改改就能用,不求全量规范。全程纯浏览器本地运行,数据不上传。
核心能力
样例反推:从一份 JSON 生成 draft-07 Schema 骨架,嵌套结构照搬。required 可控:对象字段默认全进 required,一键开关。格式嗅探:email/date-time/uri/uuid/ipv4/date 命中一致才写 format 并提示。混合类型:数组元素类型不一致时生成 type 数组。零上传:本地转换,样例不出本机。
使用建议
喂给它的样例信息越全,底稿越准:挑字段最全、类型最典型的那份响应,而不是最精简的成功样例;同一个接口拿两三份不同返回各转一次,再合并 properties 也是常见做法。生成后重点人工过三处:required 是否要放宽、format 是否误判、additionalProperties 是否需要收紧,改完可直接配站内 JSON Schema 校验工具使用。
常见问题
生成的 Schema 是完备的吗?
不是,它是底稿。从单个样例反推只能覆盖见到的形状:没出现过的字段不会进 properties,枚举也只此一种。定位是「改改就能用」:拿到底稿后按业务补齐约束,不求全量规范。
字符串的 format 是怎么判断的?
轻量嗅探:样例字符串命中 email、date-time、uri、uuid、ipv4、date 等格式,且同字段取值一致才写 format,并给出提示。嗅探只是辅助,误判请手动删掉。
为什么所有字段都进了 required?
默认把对象字段全部写入 required,代表「样例里有的就是必需的」这一最常见约定;接口字段可缺省时关掉该开关或手动删。混合类型的数组会生成 type 数组(如 ["string","null"])。
相关工具
JSON Schema 校验
draft-07 高频关键字校验,错误按 JSON Pointer 路径定位。
JSON 转 C# 类
样例 JSON 生成 C# 类,PascalCase 与 JsonPropertyName 自动补。
JSON 转 Go Struct
样例 JSON 生成 Go struct 与 json tag,混合类型 any 兜底。