JSON Schema 样本生成器
根据 JSON Schema 创建可重现的有效和无效测试数据。提供每个样本前,都会使用 JSON Schema 验证器进行检查。
尚未选择文件
架构最多 50,000 个字符;可生成 1 到 100 个有效样本和 0 到 100 个无效样本,结果最多 4,000,000 个字符。所有处理都在浏览器中进行。可下载 JSON 报告和 JSON Lines 文件。 以 JSON 或 YAML 格式粘贴一个架构。会跟随本地 $ref 引用。 最多 50,000 个字符。 运行前请检查设置。
处理结果
JSON Schema 样本生成器
- 以 JSON 或 YAML 格式粘贴 JSON Schema。
- 选择随机种子,以及要生成的有效和无效样本数量。
- 运行生成器并查看每个无效样本违反的规则。
- 下载报告或 JSON Lines 文件。
使用须知
架构最多 50,000 个字符;可生成 1 到 100 个有效样本和 0 到 100 个无效样本,结果最多 4,000,000 个字符。所有处理都在浏览器中进行。可下载 JSON 报告和 JSON Lines 文件。
样本的生成方式
生成器遍历架构,使用带种子的随机数生成器,从类型、枚举、范围、长度、简单模式和常见格式中选取值,因此相同种子会生成相同样本。然后使用 Ajv 验证每个候选样本。失败的候选项会被替换;尝试 25 次后,样本会列为无法生成,而不会输出。
无效样本
无效样本从有效样本开始,每次违反一条规则,例如类型错误、缺少必需属性、值超出枚举或范围,或包含额外属性。每个样本都会再次验证,报告会指出失败的关键字。
限制
只跟随架构内的本地引用;不会获取其他文件或 URLs 的引用。复杂正则表达式、not 以及某些 oneOf 组合可能超出生成器支持的搜索范围。此类样本会报告为未生成。若架构将 __proto__ 用作属性、pattern 或 dependency 键,验证器会拒绝处理,因为捆绑验证器无法可靠检查该键。包含此键的字面实例数据会予以保留。