Генератор моделей Pydantic из JSON
Сгенерируйте классы моделей Pydantic v2 из образца JSON мгновенно в браузере. Ваш JSON остаётся на устройстве.
Ваш JSON разбирается и преобразуется в модели Pydantic полностью в вашем браузере, поэтому остаётся на устройстве и ничего не загружается на сервер.
Нужны типы Go, Rust или TypeScript? Попробуйте JSON в код.
Об инструменте JSON в Pydantic
Этот генератор JSON в Pydantic превращает образец объекта или массива JSON в готовые к использованию классы моделей Pydantic v2 за секунды. Вставьте реальный ответ API, и он выведет тип каждого поля — str, int, float и bool, пометит nullable-поля как Optional, объединит массивы в типы list[...] и продвинет каждый вложенный объект в собственный BaseModel, на который ссылается по имени. Ключи, не являющиеся допустимыми идентификаторами Python, сохраняются через Field(alias=...), чтобы модель по-прежнему разбирала вашу исходную структуру данных. Он создан для разработчиков на Python и FastAPI, которые предпочитают генерировать модели pydantic из json, а не писать их вручную при подключении типизированного клиента. Всё работает локально в вашем браузере, поэтому вставленный JSON обрабатывается на вашем устройстве и ничего не загружается на сервер.
Возможности
- Генерирует классы BaseModel Pydantic v2 из любого объекта или массива JSON
- Выводит str, int, float и bool из значений вашего образца
- Помечает nullable-поля и иногда отсутствующие поля как Optional[...]
- Продвигает вложенные объекты в собственные именованные классы BaseModel
- Объединяет массивы в типы list[...], пустые массивы становятся list[Any]
- Сохраняет недопустимые ключи Python через Field(alias=...), чтобы разбор работал
- Выдаёт чистые импорты для BaseModel, Field, Optional и Any
- Копирование результата или его скачивание в виде файла .py
Как использовать JSON в Pydantic
- Вставьте ваш объект или массив JSON в поле ввода.
- Задайте имя корневой модели под вашу структуру данных или оставьте его как Model.
- Просмотрите сгенерированные классы Pydantic на панели вывода.
- Скопируйте результат или скачайте его в виде файла .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, а корневой класс идёт последним.
Частые ошибки и устранение неполадок
- В выводе показана ошибка Invalid со строкой и столбцом. — В JSON есть синтаксическая проблема, например замыкающая запятая, одинарные кавычки или ключ без кавычек. Исправьте её в указанной строке и столбце, и модели перегенерируются.
- Поле вышло как Optional[Any] вместо конкретного типа. — Каждое образцовое значение для этого ключа было null, поэтому конкретный тип вывести не удалось. Предоставьте образец с реальным значением для этого поля.
- Поле использует Field(alias=...) с переименованным атрибутом. — Этот ключ не является допустимым идентификатором Python или является зарезервированным словом, поэтому он доступен под безопасным именем атрибута, а исходный ключ сохранён как алиас.
- Поле-список вышло как list[Any]. — Массив в вашем образце был пустым, поэтому тип элемента вывести не удалось. Включите хотя бы один представительный элемент, чтобы получить типизированный список.
Часто задаваемые вопросы
- Генерирует ли он модели Pydantic v2?
- Да. Вывод нацелен на синтаксис Pydantic v2: каждая модель — это класс, наследующий BaseModel, с аннотированными полями и Field(alias=...) там, где ключ JSON не является допустимым идентификатором Python.
- Как обрабатываются вложенные объекты?
- Каждый вложенный объект становится собственным классом 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].
- Отправляется ли куда-либо мой JSON при генерации моделей Pydantic?
- Нет. Преобразование JSON в Pydantic выполняется полностью в вашем браузере, поэтому вставленные данные обрабатываются локально и никогда не покидают устройство.
Связанные инструменты
- JSON в TypeScript — Генерируйте интерфейсы TypeScript из образца JSON.
- JSON в код — Генерируйте типы Go, Rust, Python, Java, Kotlin, C# и TypeScript из JSON.
- Генератор и валидатор JSON Schema — Генерация JSON Schema из образца или проверка документа.
- Форматировщик JSON — Форматируйте, минимизируйте и проверяйте JSON с указанием места ошибок.
- JSON в Zod — Сгенерируйте схему Zod из образца JSON — строки, числа, массивы и вложенные объекты.
- Просмотрщик JSON — Текстовый и древовидный просмотр со сворачиванием/разворачиванием и путями узлов.
Все инструменты ArrayKit