JSON naar Python converter — Klassen genereren
Zet JSON om naar Python-dataclasses of Pydantic-modellen met type hints, snake_case-velden en from_dict/to_dict-helpers. Gratis, privé en in je browser.
🔒 Draait volledig in je browser — niets wordt geüploadVan JSON naar getypeerde Python-klassen
Werken met ruwe dictionaries gaat snel, totdat een typfout in een sleutelnaam drie lagen dieper een KeyError veroorzaakt. Deze JSON naar Python converter genereert getypeerde klassen uit een JSON-voorbeeld, zodat je editor, typechecker en teamgenoten precies weten wat elke payload bevat. Elk object wordt een klasse met geannoteerde attributen, geneste objecten worden eigen klassen, lijsten worden getypeerd op hun elementtype en waarden die soms ontbreken, krijgen een optioneel type. JSON-sleutels worden omgezet naar snake_case-attribuutnamen, terwijl de gegenereerde serialisatiecode de oorspronkelijke sleutels op de lijn behoudt.
De generatie wordt verzorgd door quicktype, dat alle elementen van elke array samenvoegt voordat het typen afleidt. Een veld dat maar in sommige items voorkomt, wordt dus toch vastgelegd en als optioneel gemarkeerd in plaats van stilzwijgend weggelaten.
Dataclasses, Pydantic en Python-versies
Standaard gebruikt de uitvoer @dataclass-klassen uit de standaardbibliotheek plus from_dict- en to_dict-functies die elk veld valideren en converteren, zodat je geen externe afhankelijkheid nodig hebt. Gebruikt je project al Pydantic — voor FastAPI-requestbodies, instellingen of validatie — vink dan Pydantic BaseModel aan en de klassen erven in plaats daarvan van BaseModel. De Python-versiekeuze bepaalt de typesyntaxis: 3.10+ levert moderne annotaties als list[int] en str | None, terwijl oudere doelen terugvallen op de module typing. Vink Classes only aan om de conversiehelpers helemaal over te slaan.
Praktische tips
Gebruik een voorbeeld dat optionele velden benut en meerdere arrayelementen bevat, want de inferentie kan alleen beschrijven wat ze ziet. Geef de rootklasse een naam uit je domein — Invoice leest beter dan Root — en de download gebruikt die naam. Voer na het genereren je formatter en typechecker uit (Black, Ruff, mypy of Pyright) en maak strakker wat een voorbeeld niet kan tonen, zoals strings die eigenlijk enums zijn of getallen die Decimal moeten zijn. Alle parsing en codegeneratie gebeurt lokaal, dus je kunt veilig antwoorden plakken die klantgegevens bevatten.
Hoe te gebruiken
- Plak JSONPlak een JSON-object of -array, of klik op Load sample.
- Kies een stijlKies je Python-versie en of je dataclasses of Pydantic-modellen wilt.
- Kopieer de klassenKopieer de gegenereerde code of download die als .py-module.
Veelgestelde vragen
Genereert het dataclasses of Pydantic-modellen?
@dataclass met type hints; vink Pydantic BaseModel aan om in plaats daarvan Pydantic-modellen te krijgen.Welke Python-versies worden ondersteund?
list[str] en de unie-syntaxis X | None.Worden eigenschapsnamen omgezet naar snake_case?
from_dict en to_dict de oorspronkelijke JSON-sleutels behouden.