JSON Schema 示例数据生成器
粘贴一份 JSON Schema,即可在你的浏览器中生成符合它的示例 JSON。你的 schema 留在你的设备上。
你的 JSON Schema 在浏览器本地被解析并转成示例数据,绝不会被上传,但请避免在你粘贴的 schema 中嵌入真实的机密或生产环境的值。
已有 JSON 但需要 schema?试试 JSON Schema 生成器。
关于 JSON Schema 示例数据生成器
这款 JSON Schema 示例数据生成器会把一份 schema 变成真正符合它的逼真示例 JSON。粘贴一份 draft-07、2019-09 或 2020-12 的 schema,它就会构建出遵循你的类型、email、date、uri、uuid 等字符串格式、enum 选项、必填属性、最小值和最大值边界,以及 allOf、anyOf、oneOf 等组合器的数据。选择要产生多少个样本,它们会被包进一个数组,或者生成单个对象。开启逼真值,用栩栩如生的姓名、邮箱和日期来填充字符串格式,而不是普通的占位符。可用它为数据库播种、模拟 API 响应,或为测试构建夹具,而不必手写示例负载。你粘贴的 schema 完全在你的浏览器中处理,绝不会离开你的设备。
功能特性
- 读取 JSON Schema draft-07、2019-09 和 2020-12 文档
- 遵循类型、必填属性以及 minimum/maximum 数值边界
- 用有效值填充 email、date-time、uri、uuid 等字符串格式
- 尊重 enum 和 const,使生成的值保持在允许的集合内
- 解析 allOf、anyOf、oneOf 等组合器,以及 $ref 定义
- 生成一个对象,或生成包进数组的多个样本
- 可选的逼真值,由栩栩如生的姓名、邮箱和日期驱动
- 一键复制结果,或将其下载为 sample-data.json
如何使用 JSON Schema 示例数据生成器
- 把你的 JSON Schema 粘贴到 schema 框中,或点击「Load example」。
- 设置你想要多少个样本,并开关逼真值。
- 在右侧的输出面板中查看符合的示例 JSON。
- 点击「复制」获取数据,或将其下载为 sample-data.json。
示例
输入
{
"type": "object",
"required": ["id", "email", "role"],
"properties": {
"id": { "type": "integer", "minimum": 1 },
"email": { "type": "string", "format": "email" },
"role": { "enum": ["admin", "editor", "viewer"] }
}
}
输出
{
"id": 254,
"email": "ada@example.com",
"role": "editor"
}
生成的对象同时满足了整数、email 格式和 enum 约束。
常见错误与故障排除
- 输出提示 schema 不是有效的 JSON。 — 生成器需要一个 JSON 对象。检查是否有末尾多余的逗号、未加引号的键或单引号,并粘贴一份完整、格式良好的 schema。
- 生成的数据中缺少某个必填属性。 — 把该属性列入 schema 的 required 数组并给它一个类型;没有类型或仅作为可选出现的属性可能会被跳过。
- 像 email 或 uuid 这样的字符串格式输出成了随机字符。 — 开启逼真值,让识别出的格式用栩栩如生的样本填充,而不是基于模式的占位符。
- anyOf 或 oneOf 分支产生了你没有预期到的数据。 — 生成器每次运行会挑选一个匹配的分支;用各自的 required 和 type 关键字收紧每个分支,让每个选项都保持有效。
常见问题
- 支持哪些 JSON Schema 草案?
- 它处理 draft-07、2019-09 和 2020-12 的 schema,涵盖类型、字符串格式、枚举、必填属性、数值边界,以及 allOf、anyOf、oneOf 等组合器。
- 这与校验 JSON Schema 有何不同?
- 校验是检查现有数据是否匹配某份 schema。本工具方向相反:它读取一份 schema 并生成符合它的新示例数据,让你可以为测试、模拟或数据库播种。
- 如何生成包含多条记录的数组?
- 把「Samples」数量设为大于 1。每个样本都从同一份 schema 生成,结果被包进一个 JSON 数组;数量为 1 时则返回单个对象。
- 逼真值开关有什么作用?
- 开启时,识别出的字符串格式和字段会用栩栩如生的姓名、邮箱、日期和 URL 填充。关闭时,值将根据 schema 自身的约束和模式生成。
- 生成的数据总能满足 schema 吗?
- 生成器遵循类型、格式、枚举、必填字段和数值边界。非常复杂的 not 或条件 if/then/else 规则可能难以精确满足,因此对于关键夹具,请将输出对照你的 schema 进行校验。
- 我的 schema 会被上传到任何地方吗?
- 不会。你粘贴的 schema 完全在你的浏览器中解析和生成,因此它在你的设备上本地处理,绝不会发送到服务器。
相关工具
全部 ArrayKit 工具