JSON-zu-Pydantic-Modellgenerator
Generiere Pydantic-v2-Modellklassen aus einem JSON-Beispiel, sofort in deinem Browser. Dein JSON bleibt auf deinem Gerät.
Dein JSON wird vollständig in deinem Browser geparst und in Pydantic-Modelle konvertiert, sodass es auf deinem Gerät bleibt und nichts auf einen Server hochgeladen wird.
Brauchst du Go-, Rust- oder TypeScript-Typen? Probiere JSON zu Code.
Über JSON zu Pydantic
Dieser JSON-zu-Pydantic-Generator verwandelt ein JSON-Beispielobjekt oder -array in Sekunden in einsatzbereite Pydantic-v2-Modellklassen. Füge eine echte API-Antwort ein, und er leitet jeden Feldtyp ab – str, int, float und bool –, markiert nullbare Felder als Optional, vereinheitlicht Arrays zu list[...]-Typen und befördert jedes verschachtelte Objekt in ein eigenes, per Namen referenziertes BaseModel. Schlüssel, die keine gültigen Python-Bezeichner sind, werden per Field(alias=...) beibehalten, sodass das Modell deine ursprüngliche Payload weiterhin parst. Er ist für Python- und FastAPI-Entwickler gemacht, die lieber Pydantic-Modelle aus JSON generieren, als sie von Hand zu schreiben, während sie einen typisierten Client verdrahten. Alles läuft lokal in deinem Browser, sodass das eingefügte JSON auf deinem Gerät verarbeitet wird und nichts auf einen Server hochgeladen wird.
Funktionen
- Generiert Pydantic-v2-BaseModel-Klassen aus jedem JSON-Objekt oder -Array
- Leitet str, int, float und bool aus deinen Beispielwerten ab
- Markiert nullbare und manchmal fehlende Felder als Optional[...]
- Befördert verschachtelte Objekte in eigene benannte BaseModel-Klassen
- Vereinheitlicht Arrays zu list[...]-Typen, leere Arrays werden zu list[Any]
- Behält ungültige Python-Schlüssel per Field(alias=...), sodass das Parsen weiterhin funktioniert
- Gibt saubere Imports für BaseModel, Field, Optional und Any aus
- Kopiere das Ergebnis oder lade es als .py-Datei herunter
So verwendest du JSON zu Pydantic
- Füge dein JSON-Objekt oder -Array in das Eingabefeld ein.
- Setze den Namen des Root-Modells passend zu deinem Schema oder lass ihn als Model.
- Prüfe die generierten Pydantic-Klassen im Ausgabe-Panel.
- Kopiere das Ergebnis oder lade es als .py-Datei herunter.
Beispiel
Eingabe
{ "id": 1, "name": "Ada", "address": { "city": "London" } }
Ausgabe
from pydantic import BaseModel
class Address(BaseModel):
city: str
class Model(BaseModel):
id: int
name: str
address: Address
Ein verschachteltes Objekt wird zu einem eigenen BaseModel, mit der Root-Klasse zuletzt.
Häufige Fehler & Fehlerbehebung
- Die Ausgabe zeigt einen Invalid-Fehler mit Zeile und Spalte. — Das JSON hat ein Syntaxproblem wie ein nachgestelltes Komma, einfache Anführungszeichen oder einen Schlüssel ohne Anführungszeichen. Behebe es an der gemeldeten Zeile und Spalte, dann werden die Modelle neu generiert.
- Ein Feld kam als Optional[Any] statt eines konkreten Typs heraus. — Jeder Beispielwert für diesen Schlüssel war null, sodass kein konkreter Typ abgeleitet werden konnte. Gib ein Beispiel mit einem echten Wert für dieses Feld an.
- Ein Feld verwendet Field(alias=...) mit einem umbenannten Attribut. — Dieser Schlüssel ist kein gültiger Python-Bezeichner oder ist ein reserviertes Wort, daher wird er unter einem sicheren Attributnamen verfügbar gemacht, wobei der ursprüngliche Schlüssel als Alias erhalten bleibt.
- Ein Listenfeld kam als list[Any] heraus. — Das Array in deinem Beispiel war leer, sodass kein Elementtyp abgeleitet werden konnte. Füge mindestens ein repräsentatives Element ein, um eine typisierte Liste zu erhalten.
Häufig gestellte Fragen
- Generiert es Pydantic-v2-Modelle?
- Ja. Die Ausgabe zielt auf Pydantic-v2-Syntax ab: Jedes Modell ist eine Klasse, die von BaseModel erbt, mit annotierten Feldern und Field(alias=...), wo ein JSON-Schlüssel kein gültiger Python-Bezeichner ist.
- Wie werden verschachtelte Objekte behandelt?
- Jedes verschachtelte Objekt wird zu einer eigenen BaseModel-Klasse, in PascalCase aus dem besitzenden Schlüssel benannt, und das übergeordnete Objekt referenziert es per Typ. Die Klassen werden in Abhängigkeitsreihenfolge ausgegeben, mit dem Root-Modell zuletzt.
- Wie werden JSON-Typen auf Python-Typen abgebildet?
- Strings werden zu str, Ganzzahlen zu int, Dezimalzahlen zu float, Booleans zu bool, null erzeugt Optional, Arrays werden zu list[...] mit einem vereinheitlichten Elementtyp und Objekte zu verschachtelten BaseModels.
- Was passiert mit Schlüsseln, die keine gültigen Python-Namen sind?
- Ein Schlüssel wie first-name oder 2fa, oder ein reserviertes Wort wie class, wird unter einem sicheren snake_case-Attribut verfügbar gemacht, und der ursprüngliche Schlüssel bleibt mit Field(alias="...") erhalten, sodass das Modell deine Payload weiterhin parst.
- Wie werden Arrays und leere Arrays konvertiert?
- Arrays werden zu list[...] mit dem vereinheitlichten Typ ihrer Elemente, einschließlich eines verschachtelten BaseModel für Arrays von Objekten. Ein leeres Array hat keinen Elementtyp zum Ableiten und wird daher zu list[Any].
- Wird mein JSON irgendwohin gesendet, wenn ich Pydantic-Modelle generiere?
- Nein. Die JSON-zu-Pydantic-Konvertierung läuft vollständig in deinem Browser, sodass die eingefügten Daten lokal verarbeitet werden und dein Gerät nie verlassen.
Verwandte Tools
- JSON zu TypeScript — Erzeuge TypeScript-Interfaces aus einer JSON-Probe.
- JSON zu Code — Erzeuge Typen für Go, Rust, Python, Java, Kotlin, C# und TypeScript aus JSON.
- JSON Schema Generator — Generiere oder validiere ein JSON Schema mit Ajv.
- JSON-Formatierer — JSON verschönern, minimieren und validieren – mit Fehlerposition.
- JSON zu Zod — Generiere ein Zod-Schema aus einem JSON-Beispiel mit abgeleiteten Typen.
- JSON-Viewer — Text- und einklappbare Baumansicht mit Ein-/Ausklappen und Knotenpfaden.
Alle ArrayKit-Tools