使用步骤
- 粘贴 JSON 示例,或点「加载示例」。
- 设置根 Schema 的标题。
- 复制或下载 Schema,再按需补充 format、pattern、取值范围等约束。
参数说明
- 根类型名称
- 用作 Schema 的 title。
使用示例
{"id": 1, "email": null} 会生成 "id": {"type": "integer"}、"email": {"type": "null"},并且两个键都在 required 中。
示例
两条用户数据,只有第一条有 email,manager 有时为 null:
[
{ "id": 1, "name": "Ada", "email": "ada@example.com", "tags": ["admin"], "manager": null },
{ "id": 2, "name": "Grace", "tags": [], "manager": { "id": 1 } }
]
根类型名填 User,生成的 Schema:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "User",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": { "type": "integer" },
"name": { "type": "string" },
"email": { "type": "string" },
"tags": { "type": "array", "items": { "type": "string" } },
"manager": {
"anyOf": [
{ "type": "null" },
{ "type": "object", "properties": { "id": { "type": "integer" } }, "required": ["id"] }
]
}
},
"required": ["id", "name", "tags", "manager"]
}
}
第二条没有 email,所以 email 不在 required 里;manager 在样例里既有 null 又有对象,所以两种都允许。样例数据越全,生成的 Schema 越准,最好多贴几条记录。
常见用途
**校验接口参数:**把 Schema 交给 Ajv(JavaScript)或 jsonschema(Python)这类校验库,不符合的请求直接拒绝。
**写接口文档:**复制 properties 到 OpenAPI 的 components.schemas,作为文档的起点。
**编辑器提示:**VS Code、JetBrains 系列编辑器可以按 JSON Schema 给配置文件补全字段、标出错误。
常见问题
哪些键会被标为必填?
在所有示例对象中都出现的键。数组里的对象键不一致时,只在部分元素中出现的键不会列入 required。
能用在 OpenAPI 里吗?
OpenAPI 3.1 使用 JSON Schema 2020-12,生成的 Schema 可以直接放在 components/schemas 下。OpenAPI 3.0 需要把 ["string", "null"] 这样的类型数组改成 nullable true。
能识别邮箱、日期时间等格式吗?
不能,它只推断类型。format、pattern、minimum 等关键字需要按需手动添加。
JSON 数据会上传吗?
不会。类型在浏览器中生成,包含真实数据的接口返回也不会离开你的设备。
隐私说明
本工具完全在浏览器中运行,文件和文本都在你的设备上处理,不会上传到我们的服务器。