UTILS.
100 % im Browser
🐍

JSON zu Pydantic-Modell

Verwandeln Sie ein JSON-Beispiel in Python-Pydantic-v2-Modellklassen, mit Umschaltern für @dataclass- oder TypedDict-Ausgabe und snake_case-Feld-Aliasing.

Ausgabe

Über dieses Tool

Das Tool JSON zu Pydantic-Modell konvertiert ein eingefügtes JSON-Beispiel in Python-Modellklassen. Python- und FastAPI-Entwickler erstellen ständig Pydantic-Modelle aus Beispiel-API-Antworten, und dieser Konverter erledigt das sofort im Browser. Es parst Ihr JSON, leitet Python-Typen rekursiv ab und gibt eine Klasse pro Objekt aus: Strings werden zu str, ISO-Datum-Zeit-Strings zu datetime, reine Datums-Strings zu date, Ganzzahlen zu int, andere Zahlen zu float, Booleans zu bool, Arrays zu List[T] und verschachtelte Objekte zu ihren eigenen Modellklassen in PascalCase.

Alles Parsen und Erzeugen erfolgt lokal mit JSON.parse und reinem JavaScript, sodass nichts, was Sie einfügen, Ihr Gerät verlässt. Kindklassen werden vor den Klassen ausgegeben, die sie referenzieren (topologische Reihenfolge), und der Header importiert nur das, was tatsächlich verwendet wird — BaseModel und Field aus pydantic, Optional / List / Union / Any aus typing sowie datetime / date, wenn relevant. from __future__ import annotations ist immer enthalten, damit Vorwärtsreferenzen unabhängig von der Reihenfolge funktionieren.

Schlüssel, die in einigen Geschwisterobjekten fehlen oder als null gesehen werden, werden zu Optional[T] = None. Der Ausgabemodus-Umschalter wechselt zwischen Pydantic v2 BaseModel (Standard), stdlib @dataclass und typing.TypedDict. Schalten Sie snake_case-Felder ein, um camelCase- oder ungültige Schlüssel umzubenennen und automatisch Field(alias="originalKey") hinzuzufügen, sodass das Modell das ursprüngliche JSON weiterhin parst. Kopieren Sie den Code oder laden Sie ihn als .py-Datei herunter.

Häufig gestellte Fragen

Welche Python-Typen werden abgeleitet?
string zu str, ISO-Datum-Zeit zu datetime, reines Datum zu date, Ganzzahl zu int, Nicht-Ganzzahl zu float, Boolean zu bool, Array zu List[T] mit aus den Elementen zusammengeführtem T und Objekt zu einer verschachtelten BaseModel-Klasse. Null- oder fehlende Werte werden zu Optional[T] = None.
Kann ich stattdessen eine dataclass oder TypedDict erhalten?
Ja. Der Ausgabemodus-Umschalter gibt Pydantic v2 BaseModel (Standard), eine stdlib @dataclass mit dem dataclasses-Import oder eine typing.TypedDict-Klasse aus. Die Typinferenz ist dieselbe; nur die Klassenhülle und die Imports ändern sich.
Wie werden Nicht-Bezeichner- oder camelCase-Schlüssel behandelt?
Mit aktivierten snake_case-Feldern wird ein Schlüssel wie userName zu user_name plus Field(alias="userName"), sodass er weiterhin hin und zurück konvertiert. Schlüssel, die Python-Schlüsselwörter oder ungültige Bezeichner sind, werden immer aliasiert, damit der erzeugte Code gültig ist.
Sind die Klassen korrekt geordnet?
Ja. Verschachtelte Kindklassen werden vor den Elternklassen deklariert, die sie verwenden, und from __future__ import annotations ist enthalten, sodass die Modelle ohne Vorwärtsreferenzfehler kompilieren.

Weitere Tools