无需登录 数据私有 本地保存

JSON Schema 示例生成器 - 根据定义产出示例数据

12
0
0
0

JSON Schema 示例生成器

输入 JSON Schema 定义,自动生成符合规范的示例数据,支持所有主流数据类型与约束条件

JSON Schema 定义
0 字符
生成的示例 JSON
← 在左侧输入 JSON Schema 即可生成示例数据

常见问题与知识点

JSON Schema 是一种用于描述和验证 JSON 数据结构的规范语言。它就像 JSON 数据的"类型系统",可以精确定义字段的类型、格式、取值范围、是否必填等约束。主要用途包括:API 接口文档(如 OpenAPI/Swagger)、数据验证(前端表单校验、后端请求校验)、自动化测试(生成测试用例)、IDE 智能提示(如 VS Code 的 JSON 编辑支持)以及配置文件的规范化管理

JSON Schema 支持 7 种基本类型string(字符串)、number(数字,含整数和浮点数)、integer(整数)、boolean(布尔值 true/false)、object(对象)、array(数组)以及 null(空值)。类型可以用单个字符串表示,也可以用数组表示多种可能类型,例如 "type": ["string", "null"] 表示该字段可以是字符串或 null。

在 JSON Schema 中,使用 "required" 关键字来指定对象中哪些属性是必须存在的。required 是一个字符串数组,列出所有必填的属性名。例如:
{"type": "object", "properties": {"name": {"type": "string"}, "age": {"type": "integer"}}, "required": ["name"]}
表示 name 是必填的,而 age 是可选的。注意,required 只检查属性是否存在,不关心属性值是否为 null。

enum 定义了一个允许值列表,数据必须等于列表中的某一个值。例如 "enum": ["red", "green", "blue"] 表示字段只能取这三个颜色之一。
const 则指定了一个唯一固定值,数据必须严格等于该值(相当于只有一个选项的 enum)。例如 "const": "v2.0" 表示该字段只能是 "v2.0"。在实际使用中,enum 用于有限选项,const 用于版本标识、类型标识等固定值场景。

items 关键字用于定义数组中每个元素的 Schema。如果 items 是一个对象,则数组中所有元素都必须符合该 Schema(如 "items": {"type": "string"} 表示字符串数组)。如果 items 是一个数组,则为元组式定义——按索引位置分别校验(如 "items": [{"type": "string"}, {"type": "number"}] 表示第一个元素是字符串,第二个是数字)。配合 minItemsmaxItemsuniqueItems 可以进一步约束数组的长度和唯一性。

$ref 是 JSON Schema 中的引用机制,允许在一个 Schema 中引用另一个已定义的结构,避免重复定义。引用路径使用 JSON Pointer 格式(如 "$ref": "#/definitions/address")。被引用的定义通常放在 definitions(draft-04~07)或 $defs(draft 2019-09+)关键字下。$ref 可以引用同一文档内的定义,也可以引用外部文件或 URL。在大型 Schema 中合理使用 $ref 可以大幅提升可维护性。本工具支持解析同一文档内的 $ref 引用并生成对应示例。

本工具生成的示例数据主要用于开发和测试阶段,帮助你快速理解 Schema 结构、编写单元测试、填充开发数据库或制作 API Mock。生成的数据是符合 Schema 约束的合理示例,但不包含真实业务逻辑(如真实的邮箱地址、有效的手机号等)。在生产环境中使用时,建议根据实际业务需求替换为真实有效的数据。对于自动化测试场景,本工具生成的示例数据可以作为测试fixture的良好起点。