UTILS.
100% in de browser
🐍

JSON naar Pydantic-model

Zet een JSON-voorbeeld om in Python Pydantic v2 modelklassen, met schakelaars voor @dataclass- of TypedDict-uitvoer en snake_case-veldaliassen.

uitvoer

Over deze tool

De tool JSON naar Pydantic-model zet een geplakte JSON-voorbeeld om in Python-modelklassen. Python- en FastAPI-ontwikkelaars steigeren voortdurend Pydantic-modellen uit voorbeeld-API-responses, en deze converter doet dat direct in de browser. Het parseert je JSON, leidt Python-types recursief af en produceert één klasse per object: strings worden str, ISO datum-tijdstrings datetime, alleen-datumstrings date, integers int, andere getallen float, booleans bool, arrays List[T], en geneste objecten hun eigen modelklassen benoemd in PascalCase.

Alle parsering en generatie gebeurt lokaal met JSON.parse en gewoon JavaScript, dus niets wat je plakt verlaat je machine. Kindklassen worden vóór de klassen die ernaar verwijzen geproduceerd (topologische volgorde), en de header importeert alleen wat daadwerkelijk wordt gebruikt — BaseModel en Field van pydantic, Optional / List / Union / Any van typing, en datetime / date waar relevant. from __future__ import annotations wordt altijd opgenomen zodat forward references werken ongeacht de volgorde.

Sleutels die in sommige broer-objecten ontbreken, of als null worden gezien, worden Optional[T] = None. De uitvoermodus-schakelaar wisselt tussen Pydantic v2 BaseModel (standaard), stdlib @dataclass, en typing.TypedDict. Zet snake_case-velden aan om camelCase of ongeldige sleutels te hernoemen en automatisch Field(alias="originalKey") toe te voegen zodat het model de oorspronkelijke JSON nog steeds parseert. Kopieer de code of download deze als een .py-bestand.

Veelgestelde vragen

Welke Python-types worden afgeleid?
string naar str, ISO datum-tijd naar datetime, alleen-datum naar date, integer naar int, niet-integer getal naar float, boolean naar bool, array naar List[T] met T samengevoegd uit de elementen, en object naar een geneste BaseModel-klasse. Null of ontbrekende waarden worden Optional[T] = None.
Kan ik in plaats daarvan een dataclass of TypedDict krijgen?
Ja. De uitvoermodus-schakelaar produceert Pydantic v2 BaseModel (standaard), een stdlib @dataclass met de dataclasses-import, of een typing.TypedDict-klasse. De type-inferentie is hetzelfde; alleen de klasse-omhulling en imports veranderen.
Hoe worden niet-identifier- of camelCase-sleutels afgehandeld?
Met snake_case-velden aan wordt een sleutel als userName user_name plus Field(alias="userName") zodat het nog steeds heen en weer kan. Sleutels die Python-keywords of ongeldige identifiers zijn, krijgen altijd een alias zodat de gegenereerde code geldig is.
Zijn de klassen correct geordend?
Ja. Geneste kindklassen worden vóór de ouderklassen die ze gebruiken gedeclareerd, en from __future__ import annotations wordt opgenomen, zodat de modellen compileren zonder forward-reference-fouten.

Meer tools