跳到主要内容

JSON Schema 生成器,从任意 JSON 样本推断 Schema

粘一段 JSON 样本,在浏览器里得到带类型的 JSON Schema(draft-07 或 2020-12)

  • 本地处理
  • 分类 开发运维
  • 适合 格式化、校验、压缩或检查和代码相关的文本。
版本:
JSON 样本
JSON Schema
先填一段 JSON 样本,再点生成 Schema。

这个工具能做什么

从 JSON 样本生成 JSON Schema,即时完成,全程在浏览器里跑。粘进一个 真实的对象或数组,工具会递归遍历:把每个值标成 string、number、 integer、boolean、null、object 或 array,给对象建好 properties 和可 开关的 required 列表,把数组元素合并成一份 items schema(类型混合时 用 anyOf)。选 draft-07 或 2020-12,顶部的 $schema 那行随之切换。 打开 examples 还能把原样本嵌进去方便写文档。输出已经格式化好,一键 复制到剪贴板。不上传、不登录、不等服务器。这是从手头已有的 payload 到一份能直接塞进 OpenAPI、ajv、CI 校验或编辑器配置的 schema 的最短 路径。

工具细节

输入
文本 + 结构化内容
页面会根据工具类型展示文本框、数值控件、文件选择或结构化输入。
输出
即时结果 + 复制
结果区优先给出可操作结果,支持项会显示复制、下载或可视化预览。
隐私
浏览器本地处理
主工具逻辑未发现外部 API 调用,输入通常留在当前标签页内处理。
保存 / 分享
可分享链接状态
关键设置会进入 URL,复制链接后别人能复现同一组参数。
性能预算
首屏 JS ≤ 10 KB
没有声明 WASM 依赖,适合快速打开和移动端使用。
适用场景
开发运维 · 程序员
分类和职业标签用于推荐相关工具、组织内链,并帮助用户快速判断是否适合当前任务。

怎么用

  1. 1. 输入

    把内容粘贴或拖入工具面板。

  2. 2. 处理

    点击按钮,在浏览器内本地处理,文件不上传。

  3. 3. 复制 / 下载

    一键复制结果或下载到本地。

JSON Schema 生成器 适合怎么用

适合穿插在写代码、查问题、做 Review、上线前的小任务里。

适合开发场景

  • 格式化、校验、压缩或检查和代码相关的文本。
  • 把片段整理好再放进文档、工单、提交或交接材料。
  • 不切换工具,快速检查一个小 payload。

开发检查项

  • 压缩、混淆这类不可逆处理,先对副本操作。
  • 除非确认工具本地处理,不要粘贴密钥和敏感片段。
  • 转换后的代码上线前,仍要跑自己的测试或 lint。

下一步可以接着做

这些入口会把当前任务接到更完整的工具链里。

  1. 1 JSON 格式化与校验 浏览器内即时格式化、校验、压缩 JSON,数据不离开本地。 打开
  2. 2 JSON 转 YAML JSON 转干净 YAML —— 多行字符串走块标量、可选键排序、2/4 空格缩进、带位置错误提示 —— 浏览器本地 打开
  3. 3 JSON 转 TOML 在线工具 粘贴 JSON,得到层级清楚的 TOML,表头和对象数组都给你排好,全程在浏览器里跑 打开

真实使用场景

  • 给 API 文档先搭一份请求体 schema

    接口已经能返回一段可用的 JSON,但还没人给它写 OpenAPI schema。 粘一段真实样本进来,就得到一份 draft-07 schema,每个字段都标好 类型、都列进 required,再贴到 spec 的 components/schemas 下面。 五秒钟顶掉十分钟手敲花括号,而且类型和数据完全对得上,因为 是从数据里读出来的,不是猜的。

  • 给接手的配置文件补上校验

    一个老服务读一份有三十个键、零防护的 settings.json。把一份合法 配置丢进来生成 schema,接到 ajv 或 CI 检查里,以后某个布尔开关 打错字会直接让构建失败,而不是凌晨三点在生产环境崩掉。required 开关一键决定所有键是必填还是可选。

  • 锁住第三方 webhook 的结构防止悄悄变形

    Stripe 或 GitHub 发来一段 webhook payload,你想把它的结构固定 下来。用今天的样本生成 schema 提交进仓库,等供应商哪天偷偷改了 字段名,校验器会在数据进到处理逻辑之前就报出来。校验器用新版 的话,切到 2020-12 即可。

  • 在培训里用例子讲清 JSON Schema

    给学员讲 anyOf 和 required,让他们粘自己的 JSON 看着 schema 冒出来,比干讲好懂得多。混合类型数组当场变成 anyOf,整数和 小数分开,切换 draft 时 $schema 那行怎么变也一目了然,全程 没人手动敲过一个花括号。

常见踩坑

  • 把一份样本当成全部真相。从单个对象推断出的 schema 只认得这份样本里有的键。要是别的记录带了样本里缺的可选字段,生成的 required 就会过严。喂一个有代表性的数组,或事后放宽 required。

  • 指望它认出 date-time、email、uuid 这类格式。本工具推断的是结构类型(string、integer、object、array),不是字符串的语义格式。时间戳字符串出来就是 type string。需要格式约束的地方,自己补上 format 关键字。

  • 忘了 integer 和 number 不是一回事。样本值 10 会推断成 integer,那么 10.5 就过不了这份 schema。字段可能含小数的话,确保样本里真出现一个小数,或者自己把类型放宽成 number。

隐私说明

推断全程在浏览器里跑,用的是 JSON.parse 加几行纯 JavaScript。粘进来 的样本、生成的 schema、切换的每个选项都留在标签页内,不上传、不记录。 唯一要注意:分享链接会把输入写进查询字符串,所以把链接粘到聊天里, 对方服务器的访问日志会留下这段样本。涉及保密的 payload,用 schema 上 的复制按钮,而不是分享网址。

常见问题

类似工具组合

做你这行的人, 还会一起用这些。

Made by Toolora · 100% client-side · Updated 2026-05-29