Skip to content

Конвертер JSON в классы Python

Вставьте JSON и мгновенно получите классы Python — dataclass, Pydantic v2 или TypedDict. Optional-типы, alias для camelCase, вложенные классы. На 100% в браузере, бесплатно.

Без отслеживания Работает в браузере Бесплатно
Вывод
0 симв.
Вывод Python
0 строк
Вывод проверен на соответствие синтаксису Python 3.12+ и семантике Pydantic v2 для реальных payload'ов API. — Go Tools Team · Jul 3, 2026

Что такое конвертация 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. 1

    Вставьте JSON

    Поместите объект JSON, массив или ответ API в поле ввода. Конвертация начинается мгновенно.

  2. 2

    Выберите dataclass, Pydantic или TypedDict

    Переключайте стиль вывода под свой проект и переименуйте корневой класс со стандартного Root.

  3. 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?
Вставьте JSON в поле ввода. Конвертер мгновенно разбирает его в браузере и генерирует Python справа. Выберите dataclass, Pydantic v2 или TypedDict переключателем, затем нажмите «Скопировать» — без загрузки, без аккаунта, без ожидания.
В чём разница между выводом dataclass, Pydantic и TypedDict?
dataclass даёт @dataclass из стандартной библиотеки без зависимостей — отлично для простых контейнеров данных. Pydantic v2 выводит классы BaseModel, которые проверяют и приводят данные во время выполнения, что идеально для разбора непроверенных ответов API. TypedDict описывает форму обычного dict для статических анализаторов типов (mypy, Pyright) без затрат во время выполнения. Переключайте режимы, чтобы сравнить один и тот же JSON в каждом.
Как сгенерировать модель Pydantic из JSON?
Выберите вкладку Pydantic v2. Поля преобразуются в snake_case с Field(alias="originalKey"), так что модель по-прежнему читает JSON в camelCase, а model_config = ConfigDict(populate_by_name=True) позволяет создавать её и по имени поля. Разбирайте payload через Root.model_validate(data) — Pydantic проверяет типы и выдаёт понятную ошибку при некорректном вводе.
Как вывод dataclass обрабатывает ключи camelCase?
У dataclass нет встроенного alias, поэтому, чтобы Root(**data) продолжал работать, режим dataclass сохраняет исходный ключ как имя поля, когда это допустимый идентификатор Python (publicRepos остаётся publicRepos). Если нужен идиоматичный snake_case с alias, используйте вместо этого режим Pydantic v2, который сопоставляет поля snake_case обратно с точным ключом JSON.
Как типизируются опциональные и null-поля?
Когда ключ присутствует в части элементов массива, но не во всех, его тип оборачивается в Optional. Поле, которое всегда только null, становится Optional[Any], потому что сам по себе null в JSON не несёт типа. Вставьте представительный образец с заполненным значением, чтобы получить более конкретный тип, чем Any.
В какой тип Python отображается каждое значение JSON?
Строки отображаются в str, логические значения в bool, целые числа в int, а любое число с десятичной точкой или экспонентой — в float. Поскольку целые числа Python имеют произвольную точность, даже огромные идентификаторы остаются int — переполнения 64 бит не бывает. Пустые или смешанные по типу массивы становятся List[Any], а объекты — вложенными классами.
Обрабатывает ли он вложенные объекты и массивы объектов?
Да. Каждый вложенный объект становится собственным именованным классом, а одинаковые формы дедуплицируются в один класс, который переиспользуется каждым полем. Массивы объектов сливаются ключ за ключом, так что вы получаете один класс элемента, а ключи, отсутствующие в части элементов, помечаются как Optional. Дочерние классы всегда выводятся перед классами, которые их используют.
Как обрабатываются ключевые слова Python и ключи, не являющиеся идентификаторами?
Ключ JSON, являющийся ключевым словом Python (class, from, import), получает завершающее подчёркивание (class_). Ключи с дефисами, пробелами или ведущей цифрой санируются до допустимых идентификаторов в режимах dataclass и Pydantic. В режиме TypedDict любой dict, содержащий ключ, не являющийся идентификатором, выводится в функциональном синтаксисе TypedDict('Name', {...}), чтобы сохранить точный ключ вроде "first-name".
Как использовать сгенерированный dataclass для разбора JSON?
Для плоского объекта достаточно json.loads, а затем Root(**data). Для вложенных структур dataclass не рекурсирует автоматически — либо создавайте дочерние объекты сами, либо используйте библиотеку вроде dacite или pydantic.dataclasses, либо переключите инструмент в режим Pydantic v2, где Root.model_validate(json.loads(text)) разбирает всё дерево одним вызовом.
Приватны и безопасны ли мои данные JSON?
Да. Конвертация происходит на 100% в браузере на JavaScript. Ваш 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% в браузере. Именованный, десятичный или шестнадцатеричный вывод; данные не загружаются.