Neatbo.

JSON 样本生成 Schema 骨架

把严格 JSON 样本合并为可编辑的 Draft 2020-12 类型骨架,保留来源与推断依据。

浏览器本地处理输入严格 UTF-8 JSON 样本输出Draft 2020-12 Schema 和推断报告单个文件最多 1 MiB · 最多 20 个
  1. 1添加输入
  2. 2调整设置
  3. 3获取结果

工具输入和文件在当前浏览器处理,不会上传。

输入内容

切换工具时在当前标签页临时保留输入。刷新或关闭后清除,较大的结果可能需要重新生成。

⌘ / Ctrl + Enter 运行

或将文件拖到这里

文件留在当前设备,原始文件不会被覆盖。

.json

单个文件最多 1 MiB · 最多 20 个

    0 个字符 · 0 字节
    处理选项

    先填写标记为必填的选项,其余可保留默认值。

    仅为样本推断,须人工确认 API 合同。

    正在准备处理工具…

    开始之前

    把严格 JSON 样本合并为可编辑的 Draft 2020-12 类型骨架,保留来源与推断依据。

    如何使用

    1. 粘贴一份 JSON 或选择所有原始样本文件。
    2. 默认保持属性可选;只在知晓样本含义时勾选已观察必选键。
    3. 生成并下载 Schema 与完整推断报告。
    4. 向 API 所有者确认未出现字段、业务约束与 required,再编辑并验证。

    支持范围与限制

    粘贴一个严格 JSON 值,最多 1 MiB;或选择 1–20 个 UTF-8 JSON 文件,每个最多 1 MiB、合计 4 MiB。每个原始文件名标签最多 512 UTF-8 字节;这是输入资源预算,不是操作系统 PATH_MAX。已选文件优先于粘贴内容。一文件是一份样本,根数组保留为单份数组样本。

    每个文件允许移除并记录一个开头 BOM;粘贴内容不允许 BOM。拒绝 decoded 重复键、非法 UTF-8、非 JSON 语法及原始或转义的未成对代理 Unicode。__proto__ 与 constructor 按普通字面属性处理。

    所有样本合计最多 100,000 个值节点;对象键不计值节点,容器深度最多 64 层。所有输出合计最多 32 MiB;失败或取消无部分输出。

    合并类型联合、对象 properties 与数组 items。全部数字标记只推断 number,不把数字值转为 JavaScript Number,不推断 integer、format、范围、enum、const 或 default。

    默认不推断 required。只有显式勾选才把该形状所有已观察对象中均出现的键列为 required,报告标明它只是样本推断。对象保持开放;仅观察到空数组时省略 items。

    下载完整 schema.json 和 inference-report.json;报告包括所有来源名称、字节数、SHA256、形状观察计数、BOM 与限制。不生成或获取外部 $ref,也不执行输入 Schema。

    屏幕只预览前 4,000 Unicode 码点,复制与下载保留完整 Schema。样本骨架不代表真实 API 完整性,发布前须人工确认权威合同。所有输入留在当前浏览器。

    操作示例

    示例输入

    {"id":9007199254740993,"items":[]}
    示例参数
    requireObserved=false

    示例输出

    {"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"number"},"items":{"type":"array"}}}

    出现问题时

    修正重复键、编码或语法错误;减小超限样本,再用相同选项重跑。取消不会发布部分 Schema。

    常见问题

    能直接作为正式 API Schema 吗?

    屏幕只预览前 4,000 Unicode 码点,复制与下载保留完整 Schema。样本骨架不代表真实 API 完整性,发布前须人工确认权威合同。所有输入留在当前浏览器。

    为什么大整数没有 integer 类型?

    合并类型联合、对象 properties 与数组 items。全部数字标记只推断 number,不把数字值转为 JavaScript Number,不推断 integer、format、范围、enum、const 或 default。

    相关工具