把 JSON 变成 JSON Schema:方法、步骤与推荐
「JSON Schema 怎么来?」本质上是从样本数据反推结构。下面按成本从低到高介绍。
方法一:在线生成(最快)
粘贴 JSON,立即得到 Schema,适合绝大多数日常需求。
方法二:手写
对结构完全掌控,适合需要精细约束(正则、枚举、默认值)的场景。手写参考:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"id": { "type": "integer" },
"name": { "type": "string" },
"active": { "type": "boolean" },
"tags": { "type": "array", "items": { "type": "string" } },
"profile": {
"type": "object",
"properties": {
"city": { "type": "string" },
"followers": { "type": "integer" }
},
"required": ["city", "followers"],
"additionalProperties": false
},
"scores": { "type": "array", "items": { "type": "number" } }
},
"required": ["id", "name", "active", "tags", "profile", "scores"],
"additionalProperties": false
}
方法三:从代码注解生成
如用 TypeScript decorator / class-validator,适合已有强类型模型的团队。缺点是要有现成代码。
我们的建议
先用在线工具从样本快速出 Schema,再按需手动补充约束,效率最高。
常见问题
JSON Schema 能表达枚举吗?
能,手写时给字段加 enum: [...] 即可,工具生成的基线可在此基础上扩展。
生成的 Schema 能直接校验吗?
可以,配合 ajv 等校验库,用生成的 Schema 验证线上 JSON 是否合规。
相关阅读