Конвертер JSON в классы Python
Вставьте JSON и мгновенно получите классы Python — dataclass, Pydantic v2 или TypedDict. Optional-типы, alias для camelCase, вложенные классы. На 100% в браузере, бесплатно.
Что такое конвертация JSON в Python?
Конвертация JSON в Python превращает образец JSON в готовые к использованию классы Python — dataclass из стандартной библиотеки, модель Pydantic v2 или TypedDict — так что вам никогда не придётся вручную писать определения полей для ответа API или конфигурационного файла. Этот генератор классов Python выводит правильные типы (int, float, str, bool, Optional), превращает вложенные объекты в именованные классы и добавляет alias Pydantic для ключей camelCase — всё на 100% в браузере.
Примеры
Ответ API → dataclass
{"id":101,"name":"Ada Lovelace","email":"ada@example.com","active":true,"roles":["admin","user"]} from dataclasses import dataclass
from typing import List
@dataclass
class Root:
id: int
name: str
email: str
active: bool
roles: List[str]
Типичный payload REST становится готовым к использованию @dataclass. Целые числа выводятся как int, дробные — как float, а массивы становятся List[str].
Вложенный объект (дочерний класс первым)
{"repo":"pydantic","owner":{"login":"samuelcolvin","id":100}} from dataclasses import dataclass
@dataclass
class Owner:
login: str
id: int
@dataclass
class Root:
repo: str
owner: Owner
Вложенные объекты становятся отдельными именованными классами. Дочерний класс (Owner) выводится перед родительским, поэтому код работает без from __future__ import annotations.
camelCase → alias Pydantic v2
{"login":"octocat","publicRepos":15,"createdAt":"2011-01-25"} from pydantic import BaseModel, ConfigDict, Field
class Root(BaseModel):
model_config = ConfigDict(populate_by_name=True)
login: str
public_repos: int = Field(alias="publicRepos")
created_at: str = Field(alias="createdAt")
В режиме Pydantic поля становятся snake_case, а Field(alias=...) сопоставляет их обратно с исходным ключом JSON; populate_by_name позволяет создавать модель любым способом, поэтому валидация без потерь проходит реальные данные API.
Массив объектов → TypedDict (опциональный ключ)
{"users":[{"id":1,"nick":"x"},{"id":2}]} from typing import List, Optional, TypedDict
class User(TypedDict):
id: int
nick: Optional[str]
class Root(TypedDict):
users: List[User]
Массивы объектов сливаются в один тип элемента. Ключ, отсутствующий в части элементов (nick), становится Optional. TypedDict описывает форму обычного dict без каких-либо затрат во время выполнения.
Как конвертировать JSON в Python
- 1
Вставьте JSON
Поместите объект JSON, массив или ответ API в поле ввода. Конвертация начинается мгновенно.
- 2
Выберите dataclass, Pydantic или TypedDict
Переключайте стиль вывода под свой проект и переименуйте корневой класс со стандартного Root.
- 3
Скопируйте или скачайте
Получите сгенерированный Python одним кликом и вставьте прямо в свой код.
Common Use Cases
- Типизированные клиенты API
- Превратите образец ответа REST или GraphQL в модели Pydantic или dataclass для клиента requests или httpx, не написав определения полей вручную.
- Разбор конфигов и фикстур
- Генерируйте модели для конфигурационных файлов JSON, тестовых фикстур или payload'ов вебхуков, которые нужно загрузить и проверить.
- Быстрое прототипирование и подсказки типов
- Вставьте незнакомый payload, чтобы мгновенно увидеть его форму как типы Python — быстрый способ изучить новый API или добавить подсказки TypedDict в устаревший код на dict.
Как работает конвертация
- Структурный вывод
- Каждый объект становится именованным классом; одинаковые формы дедуплицируются, так что вы получаете один класс, а не копии. Массивы объектов сливаются ключ за ключом, а ключи, отсутствующие в части элементов, становятся Optional.
- Три идиоматичных цели
- dataclass не тянет зависимостей и сохраняет допустимые ключи для Root(**data); Pydantic v2 добавляет alias через Field и populate_by_name для настоящей валидации; TypedDict описывает обычный dict для статических анализаторов типов, используя функциональный синтаксис, когда ключ не является идентификатором.
- Правильная типизация с минимумом зависимостей
- Целые числа отображаются в int (произвольная точность, без переполнения), дробные и экспоненты — в float, а поля только с null — в Optional[Any]. Импорты из typing (Optional, List, Any) добавляются только тогда, когда действительно используются.
- 100% на стороне клиента
- Разбор и генерация выполняются в браузере без сетевых запросов, поэтому ваши данные остаются приватными.
Советы для чистых моделей Python
- Подбирайте режим под задачу
- Используйте dataclass для внутренних контейнеров данных, Pydantic v2 — когда проверяете или разбираете непроверенный ввод, и TypedDict — когда нужны только статические подсказки типов поверх существующих dict.
- Вставляйте представительный образец
- Поля помечаются как Optional только когда образец их пропускает, а значения только с null сводятся к Any. Заполненный полный пример даёт наиболее точные типы.
- Дайте имя корневому классу
- Задайте осмысленное корневое имя (User, ApiResponse) вместо стандартного Root для читаемого и импортируемого кода.
Часто задаваемые вопросы
Как конвертировать JSON в класс Python?
В чём разница между выводом dataclass, Pydantic и TypedDict?
Как сгенерировать модель Pydantic из JSON?
Как вывод dataclass обрабатывает ключи camelCase?
Как типизируются опциональные и null-поля?
В какой тип Python отображается каждое значение JSON?
Обрабатывает ли он вложенные объекты и массивы объектов?
Как обрабатываются ключевые слова Python и ключи, не являющиеся идентификаторами?
Как использовать сгенерированный dataclass для разбора JSON?
Приватны и безопасны ли мои данные JSON?
Инструмент бесплатный? Нужен ли аккаунт?
Похожие инструменты
Все инструменты →Base64 декодер и кодировщик
Кодирование и форматирование
Декодирование и кодирование Base64 онлайн бесплатно. Преобразование в реальном времени с полной поддержкой UTF-8 и эмодзи. Полная приватность — работает в браузере. Без регистрации.
Конвертер Base64 в изображение
Кодирование и форматирование
Декодируйте строку Base64 или data URI обратно в изображение прямо в браузере. Предпросмотр, размеры и MIME, затем скачивание как PNG, JPG, GIF, SVG. Без загрузки.
Конвертер CSV в JSON
Кодирование и форматирование
Конвертируйте CSV в JSON в браузере. RFC 4180, определение типов, заголовок, безопасность больших целых. 100% приватно, без загрузки.
Конвертер .env в JSON
Кодирование и форматирование
Вставьте файл .env — получите JSON мгновенно. Пароли БД, API-ключи и токены не покидают браузер: 100% приватно, без загрузки, парсер dotenv.
Бесплатный HTML-декодировщик сущностей — unescape HTML
Кодирование и форматирование
Декодируйте HTML-сущности и снимайте экранирование HTML онлайн — бесплатно, без регистрации, 100% в браузере. Преобразует именованные, десятичные и hex-ссылки обратно в символы; данные не загружаются.
Бесплатный HTML-кодировщик сущностей — экранирование HTML
Кодирование и форматирование
Кодируйте HTML-сущности и экранируйте спецсимволы (< > & " ') онлайн — бесплатно, без регистрации, 100% в браузере. Именованный, десятичный или шестнадцатеричный вывод; данные не загружаются.