JSON 转 Pydantic 模型生成器

从 JSON 示例即时生成 Pydantic v2 模型类,就在你的浏览器中。你的 JSON 留在你的设备上。

你的 JSON 完全在你的浏览器中被解析并转换为 Pydantic 模型,因此它留在你的设备上,不会上传到任何服务器。

需要 Go、Rust 或 TypeScript 类型?试试 JSON 转代码。

关于 JSON 转 Pydantic

这款 json 转 pydantic 生成器能在几秒内将示例 JSON 对象或数组转为可直接使用的 Pydantic v2 模型类。粘贴真实的 API 响应,它会推断每个字段的类型 str、int、float 和 bool,将可空字段标记为 Optional,把数组统一为 list[...] 类型,并将每个嵌套对象提升为各自的、以名称引用的 BaseModel。不是合法 Python 标识符的键会通过 Field(alias=...) 保留,使模型仍能解析你的原始载荷。它专为 Python 和 FastAPI 开发者而打造 —— 他们在搭建类型化客户端时,宁愿从 json 生成 pydantic 模型,也不愿手写它们。一切都在你的浏览器本地运行,因此你粘贴的 JSON 在你的设备上处理,不会上传到任何服务器。

功能特性

如何使用 JSON 转 Pydantic

  1. 将你的 JSON 对象或数组粘贴到输入框中。
  2. 将「根模型名」设为匹配你的模式,或保留为 Model。
  3. 在输出面板中查看生成的 Pydantic 类。
  4. 复制结果或将其下载为 .py 文件。

示例

输入

{ "id": 1, "name": "Ada", "address": { "city": "London" } }

输出

from pydantic import BaseModel


class Address(BaseModel):
    city: str


class Model(BaseModel):
    id: int
    name: str
    address: Address

嵌套对象会成为各自的 BaseModel,根类排在最后。

常见错误与故障排除

常见问题

它生成的是 Pydantic v2 模型吗?
是的。输出面向 Pydantic v2 语法:每个模型是一个继承 BaseModel 的类,带有注解的字段,并在 JSON 键不是合法 Python 标识符处使用 Field(alias=...)。
嵌套对象是如何处理的?
每个嵌套对象会成为各自的 BaseModel 类,以其所属键采用 PascalCase 命名,父级通过类型引用它。各类按依赖顺序生成,根模型排在最后。
它如何将 JSON 类型映射到 Python 类型?
字符串变成 str,整数变成 int,小数变成 float,布尔值变成 bool,null 产生 Optional,数组变成带统一元素类型的 list[...],对象变成嵌套的 BaseModel。
遇到不是合法 Python 名称的键会怎样?
像 first-name 或 2fa 这样的键,或像 class 这样的保留字,会以一个安全的 snake_case 属性暴露,并用 Field(alias="...") 保留原始键,使模型仍能解析你的载荷。
数组和空数组是如何被转换的?
数组会使用其元素的统一类型变成 list[...],对于对象数组则包含一个嵌套的 BaseModel。空数组没有可推断的元素类型,因此会变成 list[Any]。
生成 Pydantic 模型时,我的 JSON 会被发送到任何地方吗?
不会。JSON 转 Pydantic 的转换完全在你的浏览器中运行,因此你粘贴的数据在本地处理,绝不离开你的设备。

相关工具

全部 ArrayKit 工具