Конвертер JSON в Python — генератор классов
Преобразуйте JSON в dataclasses или модели Pydantic для Python с аннотациями типов, полями snake_case и from_dict/to_dict. Бесплатно, приватно, в вашем браузере.
🔒 Работает полностью в вашем браузере — ничего не загружаетсяОт JSON к типизированным классам Python
Работа с сырыми словарями быстра, пока опечатка в имени ключа не вызовет KeyError на третьем уровне вложенности. Этот конвертер JSON в Python генерирует типизированные классы по образцу JSON, чтобы ваш редактор, проверяющий типы инструмент и коллеги точно знали, что содержит каждая полезная нагрузка. Каждый объект становится классом с аннотированными атрибутами, вложенные объекты — собственными классами, списки типизируются по типу элемента, а значения, которые иногда отсутствуют, типизируются как необязательные. Ключи JSON преобразуются в атрибуты в snake_case, тогда как сгенерированный код сериализации сохраняет исходные ключи при передаче данных.
Генерацией занимается quicktype, который объединяет все элементы каждого массива перед выводом типов, так что поле, встречающееся лишь в некоторых элементах, всё равно учитывается и помечается необязательным, а не молча отбрасывается.
Dataclasses, Pydantic и версии Python
По умолчанию вывод использует классы @dataclass из стандартной библиотеки и функции from_dict и to_dict, которые проверяют и преобразуют каждое поле, так что сторонние зависимости не нужны. Если ваш проект уже использует Pydantic — для тел запросов FastAPI, настроек или валидации — отметьте Pydantic BaseModel, и классы будут наследовать BaseModel. Переключатель версии Python управляет синтаксисом типов: 3.10+ даёт современные аннотации list[int] и str | None, тогда как более старые версии откатываются к модулю typing. Отметьте Classes only, чтобы полностью пропустить вспомогательные функции преобразования.
Практические советы
Используйте образец, охватывающий необязательные поля и содержащий несколько элементов массива, ведь вывод типов может описать лишь то, что видит. Назовите корневой класс по вашей предметной области — Invoice читается лучше, чем Root — и скачанный файл получит это имя. После генерации запустите форматтер и проверку типов (Black, Ruff, mypy или Pyright) и уточните всё, что образец не мог показать, например строки, которые на самом деле являются enum, или числа, которые должны быть Decimal. Весь разбор и генерация кода происходят локально, так что вы можете безопасно вставлять ответы с данными клиентов.
Как использовать
- Вставьте JSONВставьте объект или массив JSON либо нажмите Load sample.
- Выберите стильВыберите версию Python и то, нужны ли вам dataclasses или модели Pydantic.
- Скопируйте классыСкопируйте сгенерированный код или скачайте его как модуль .py.
Часто задаваемые вопросы
Генерирует ли он dataclasses или модели Pydantic?
@dataclass с аннотациями типов; отметьте Pydantic BaseModel, чтобы вместо этого получить модели Pydantic.Какие версии Python поддерживаются?
list[str] и синтаксис объединения X | None.Преобразуются ли имена свойств в snake_case?
from_dict и to_dict сохраняют исходные ключи JSON.