Конвертер 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.