Entwickler / Typen
JSON-zu-Zod-Schema-Konverter
Erstelle aus einem JSON-Beispiel ein Zod-Schema und seinen TypeScript-Typ – mit verschachtelten Objekten, Arrays, optionalen und nullbaren Feldern sowie Ganzzahlen.
JSON-zu-Zod-Schema-Konverter: Jedes Objekt im Beispiel wird zu einem z.object-Schema und mit einem daraus abgeleiteten Typ exportiert. Verschachtelte Objekte erhalten eigene benannte Schemas. Objekte in einem Array werden zusammengeführt: Schlüssel, die in einigen Objekten fehlen, erhalten .optional(), Schlüssel, die manchmal null sind, erhalten .nullable(), und Ganzzahlen erhalten .int(). Die generierten Schemas wurden überprüft, indem ihre eigenen Beispiele mit Zod geparst wurden. Läuft zu 100% lokal in deinem Browser, ohne Datei-Uploads zum Server.
- Kategorie
- Entwicklerwerkzeuge
- Ausführungen
- In deinem Browser
- Kosten
- Kostenlos · ohne Anmeldung
- Verfügbarkeit
- Einsatzbereit
Läuft vollständig in deinem Browser
TypeScript
import { z } from "zod";
export const AddressSchema = z.object({
city: z.string(),
zip_code: z.string(),
});
export type Address = z.infer<typeof AddressSchema>;
export const UserSchema = z.object({
id: z.number().int(),
user_name: z.string(),
avatar_url: z.string(),
score: z.number(),
tags: z.array(z.string()),
address: AddressSchema,
manager_id: z.number().int().nullable(),
nickname: z.string().optional(),
});
export type User = z.infer<typeof UserSchema>;
export const UserListSchema = z.array(UserSchema);
Jedes Objekt erhält ein Schema und einen abgeleiteten Typ. Schlüssel, die in einigen Objekten fehlen, erhalten .optional(), Schlüssel, die manchmal null sind, erhalten .nullable(), und ganze Zahlen erhalten .int(); lockere jede Regel, die deine API nicht garantiert.
Das Schema verwenden
Rufe Schema.parse(data) auf, um die Daten zu validieren und bei fehlerhaften Daten einen Fehler auszulösen. Mit Schema.safeParse(data) erhältst du stattdessen ein Ergebnis, das du ohne try und catch prüfen kannst. Der aus z.infer exportierte Typ bleibt beim Bearbeiten des Schemas mit ihm synchron.
Wenn du nur Typen zur Kompilierzeit brauchst, liefert dir JSON zu TypeScript einfache Interfaces. Um gegen ein vorhandenes JSON Schema zu validieren, verwende den JSON-Schema-Validator.
Die generierten Regeln verschärfen
Das Beispiel zeigt nur, was tatsächlich enthalten ist. Betrachte das Schema daher als Ausgangspunkt: Füge Zeichenfolgen, für die es zutrifft, .email(), .url() oder .datetime() hinzu, z.enum([...]) für Felder mit einer festen Wertemenge sowie .min() oder .max(), wenn deine Daten Grenzen haben.
So benutzt du es
- Füge ein JSON-Beispiel ein, idealerweise ein Array mit mehreren typischen Datensätzen.
- Gib den Typ der obersten Ebene an.
- Kopiere die Schemas und verwende sie, um Daten zur Laufzeit zu validieren.
Datenschutz & Einschränkungen
Das JSON wird in deinem Browser konvertiert und niemals hochgeladen.
Ähnliche Tools
Häufige Fragen
Warum Zod statt eines TypeScript-Interfaces verwenden?
Ein Interface verschwindet beim Kompilieren des Codes und kann daher Daten nicht zur Laufzeit prüfen. Ein Zod-Schema prüft die Daten und liefert dir mit z.infer denselben Typ.
Sollten Ganzzahlen wirklich .int() erhalten?
Nur wenn deine API ganze Zahlen garantiert. Wenn ein Preis oder eine Punktzahl Nachkommastellen enthalten kann, entferne .int() – auch wenn das Beispiel nur Ganzzahlen enthält.
Werden Zeichenfolgen wie Datumsangaben oder E-Mail-Adressen unterstützt?
Sie werden als z.string() typisiert. Füge dort, wo deine Daten es erfordern, Verfeinerungen wie .email(), .url() oder eine Datumsprüfung hinzu.
Kostenloses Tool · läuft in deinem browser · kein Konto nötig