Ga naar inhoud
100% lokaal

JSON naar Python dataclass

Converteer een JSON-voorbeeld naar getypeerde Python-klassen — dataclass, Pydantic, TypedDict of NamedTuple.

Invoer
Uitvoer

JSON naar Python dataclass

Plak JSON of een array en deze tool leidt automatisch typen af en genereert Python-klassen met volledige annotaties. Kies de stijl: @dataclass, Pydantic BaseModel voor validatie en verzoek-responsverwerking, TypedDict voor woordenboeken-code of NamedTuple voor onveranderbare records. Geneste objecten worden hun eigen klassen in de juiste volgorde; identiek gevormde objecten hergebruiken één enkele klasse in plaats van te dupliceren voor elke instantie.

De opties bepalen hoe conservatief of modern de code is. “Optional voor null-velden” zet null om naar Optional-types in plaats van loutere None; “Standaardwaarden toevoegen” laat het weglaten van velden toe bij het maken van exemplaren met automatische herordening. “Alias voor ongeldige veldnamen” handelt ongeldige JSON-sleutels af en behoudt de originele sleutel via veldmetagegevens of Pydantic Field(alias=...) voor juiste serialisatie. “list[T] in plaats van List[T]” schakelt tussen moderne PEP 585 generics en ouder typing.List, terwijl __future__-annotaties X | None / X | Y-syntaxis in gehele code inschakelen.

Type-inferentie onderscheidt strings, gehele getallen, drijvende-kommagetallen en booleaanse waarden, voegt gemengde array-inhoud samen in Union en geeft root-arrays een RootItem-naam met Root = list[RootItem]-alias. Getallen zonder decimaalteken worden als int gelezen — geen manier om “36.0” na parsering terug te krijgen. Alles draait lokaal; uw JSON en gegenereerde Python verlaten uw apparaat nooit.

FAQ

Welke uitvoerstijlen worden ondersteund?
@dataclass (standaardbibliotheekstijl), Pydantic BaseModel (voor validatie en JSON-verwerking), TypedDict (typeannotaties over een eenvoudig woordenboek zonder runtimeklasse) en NamedTuple (onveranderbare records lijkend op tuples).
Hoe worden geneste objecten en object-arrays verwerkt?
Elke afzonderlijke objectvorm wordt zijn eigen klasse, genoemd naar het veld dat het bevat en gedefinieerd vóór de klasse die ernaar verwijst. Objecten met identieke sets velden en typen hergebruiken één klasse in plaats van te dupliceren — een array van gelijkgevormd records genereert één item-klasse.
Wat gebeurt er met JSON-sleutels die geen geldige Python-identifiers zijn?
Ze worden schoongemaakt tot een geldige attribuutnaam (bijv. “first-name” → first_name). Met “Alias voor ongeldige veldnamen” ingeschakeld, wordt de originele sleutel bewaard via een systemeigen alias (veldmetagegevens in dataclass, Field(alias=...) in Pydantic) of een opmerking aan het einde voor TypedDict en NamedTuple, die geen ingebouwd aliasmechanisme hebben.
Kan het int en float betrouwbaar onderscheiden?
Het classificeert elk getal op basis van of het een fractioneel deel in uw voorbeeld heeft, maar JSON zelf maakt geen onderscheid tussen int en float voor gehele getallen — een waarde verzonden als 36.0 is na parsering niet te onderscheiden van 36, dus wordt gelezen als int.
Wordt mijn JSON ergens geüpload?
Nee. Parsering en code-generatie vinden volledig in uw browser plaats — de JSON die u plakt, en de Python die hieruit resulteert, verlaten nooit uw apparaat.