JSON till Python â Generera klasser
Konvertera JSON till Python-dataclasses eller Pydantic-modeller med typhintar, snake_case-fÀlt och from_dict/to_dict. Gratis, privat och körs i webblÀsaren.
đ Körs helt i din webblĂ€sare â ingenting laddas uppFrĂ„n JSON till typade Python-klasser
Att arbeta med rÄa dictionaries gÄr snabbt tills ett stavfel i ett nyckelnamn orsakar ett KeyError tre lager ner. Den hÀr JSON till Python-konverteraren genererar typade klasser frÄn ett JSON-exempel, sÄ att din editor, typkontroll och dina kollegor vet exakt vad varje payload innehÄller. Varje objekt blir en klass med annoterade attribut, nÀstlade objekt blir egna klasser, listor typas efter sin elementtyp och vÀrden som ibland saknas typas som valfria. JSON-nycklar konverteras till attributnamn i snake_case, medan den genererade serialiseringskoden behÄller de ursprungliga nycklarna i dataformatet.
Genereringen sköts av quicktype, som slÄr ihop alla element i varje array innan typerna infereras. Ett fÀlt som bara förekommer i vissa objekt fÄngas dÀrför ÀndÄ och markeras som valfritt i stÀllet för att tyst försvinna.
Dataclasses, Pydantic och Python-versioner
Som standard anvĂ€nder resultatet @dataclass-klasser ur standardbiblioteket samt funktionerna from_dict och to_dict, som validerar och konverterar varje fĂ€lt, sĂ„ du behöver inget tredjepartsberoende. Om ditt projekt redan anvĂ€nder Pydantic â för FastAPI-request bodies, instĂ€llningar eller validering â markerar du Pydantic BaseModel, och klasserna Ă€rver dĂ„ frĂ„n BaseModel. VĂ€ljaren för Python-version styr typsyntaxen: 3.10+ ger moderna annoteringar som list[int] och str | None, medan Ă€ldre mĂ„l faller tillbaka pĂ„ modulen typing. Markera Classes only för att hoppa över konverteringshjĂ€lparna helt.
Praktiska tips
AnvĂ€nd ett exempel som tar med valfria fĂ€lt och innehĂ„ller flera arrayelement, eftersom inferensen bara kan beskriva det den ser. Döp rotklassen efter din domĂ€n â Invoice lĂ€ses bĂ€ttre Ă€n Root â sĂ„ anvĂ€nder nedladdningen det namnet. Efter genereringen kör du din formaterare och typkontroll (Black, Ruff, mypy eller Pyright) och skĂ€rper till sĂ„dant som exemplet inte kunde visa, till exempel strĂ€ngar som egentligen Ă€r enums eller tal som borde vara Decimal. All tolkning och kodgenerering sker lokalt, sĂ„ du kan tryggt klistra in svar som innehĂ„ller kunddata.
Hur man anvÀnder
- Klistra in JSONKlistra in ett JSON-objekt eller en array, eller klicka pÄ Load sample.
- VĂ€lj stilVĂ€lj Python-version och om du vill ha dataclasses eller Pydantic-modeller.
- Kopiera klassernaKopiera den genererade koden eller ladda ner den som en .py-modul.
Vanliga frÄgor
Genereras dataclasses eller Pydantic-modeller?
@dataclass med typhintar; markera Pydantic BaseModel för att fÄ Pydantic-modeller i stÀllet.Vilka Python-versioner stöds?
list[str] och unionssyntaxen X | None.Konverteras egenskapsnamnen till snake_case?
from_dict och to_dict behÄller de ursprungliga JSON-nycklarna.