JSON zu Zod Schema Konverter
JSON einfügen, sofort ein einsatzbereites Zod-Schema erhalten, 100 % im Browser. Korrekte z.number().int(), .optional() und .nullable(), plus ein z.infer-Typ. Kostenlos.
Optionen
Was ist ein Zod-Schema?
Ein Zod-Schema ist eine TypeScript-first-Beschreibung der Form eines Werts, die Daten zur Laufzeit validiert und zur Kompilierzeit einen statischen Typ ableitet. Eines aus einem JSON-Beispiel zu erzeugen bedeutet, dass Sie nie wieder Validierungs-Boilerplate für API-Antworten, Formulare oder Konfigurationsdateien von Hand schreiben. Dieser Zod-Schema-Generator leitet korrekte Typen ab, markiert fehlende Schlüssel als .optional(), null-Werte als .nullable() und liefert Ihnen einen z.infer-Typ — alles zu 100 % in Ihrem Browser.
Beispiele
API-Antwort
{"id":101,"name":"Ada Lovelace","email":"ada@example.com","active":true,"roles":["admin","user"]} import { z } from "zod";
export const RootSchema = z.object({
id: z.number().int(),
name: z.string(),
email: z.string(),
active: z.boolean(),
roles: z.array(z.string()),
});
export type Root = z.infer<typeof RootSchema>;
Eine typische REST-Nutzlast wird zu einem einsatzbereiten Zod-Schema. Ganzzahlen ergeben z.number().int(), und das roles-Array wird zu z.array(z.string()). Ein z.infer-Typ ist gratis dabei.
Verschachteltes Objekt
{"repo":"zod","owner":{"login":"colinhacks","id":100}} import { z } from "zod";
export const OwnerSchema = z.object({
login: z.string(),
id: z.number().int(),
});
export const RootSchema = z.object({
repo: z.string(),
owner: OwnerSchema,
});
export type Root = z.infer<typeof RootSchema>;
Verschachtelte Objekte werden zu einem eigenen benannten Schema (OwnerSchema) und per Feld referenziert. Kind-Schemas werden vor dem Elternschema deklariert, das sie verwendet, und identische Formen werden einmal deklariert und wiederverwendet.
Array von Objekten (optionales Feld)
{"users":[{"id":1,"nick":"x"},{"id":2}]} import { z } from "zod";
export const UserSchema = z.object({
id: z.number().int(),
nick: z.string().optional(),
});
export const RootSchema = z.object({
users: z.array(UserSchema),
});
export type Root = z.infer<typeof RootSchema>;
Arrays von Objekten werden zu einem einzigen Element-Schema zusammengeführt. Ein Schlüssel, der in manchen Elementen fehlt, wird zu .optional(), sodass das Parsen auch bei seinem Fehlen gelingt.
Nullbares Feld und Zahlenvereinheitlichung
{"items":[{"sku":"A1","discount":0.1},{"sku":"A2","discount":null}]} import { z } from "zod";
export const ItemSchema = z.object({
sku: z.string(),
discount: z.number().nullable(),
});
export const RootSchema = z.object({
items: z.array(ItemSchema),
});
export type Root = z.infer<typeof RootSchema>;
Ein Feld, das in manchen Beispielen null ist, in anderen aber typisiert, wird zu .nullable(). Weil 0.1 einen Dezimalpunkt hat, vereinheitlicht sich die Zahl zu z.number() statt zu z.number().int().
So konvertieren Sie JSON nach Zod
- 1
JSON einfügen
Fügen Sie ein JSON-Objekt, ein Array oder eine API-Antwort in das Eingabefeld ein. Die Konvertierung startet sofort.
- 2
Ausgabe anpassen
Benennen Sie das Root-Schema um und schalten Sie die import-Zeile, den z.infer-Typ oder das export-Schlüsselwort um, passend zum Stil Ihres Projekts.
- 3
Kopieren oder herunterladen
Übernehmen Sie das erzeugte Zod-Schema mit einem Klick und fügen Sie es direkt in Ihre Validierungsschicht ein.
Common Use Cases
- API-Antworten validieren
- Verwandeln Sie eine Beispielantwort von REST oder GraphQL in ein Zod-Schema und parsen Sie sie an der Fetch-Grenze, sodass fehlerhafte Daten schnell mit einem klaren Fehler scheitern, statt durch Ihre App zu sickern.
- Typsichere Formulare und Eingaben
- Erzeugen Sie ein Schema für Formular- oder Query-Eingaben und verwenden Sie den z.infer-Typ über Ihre UI und Handler hinweg wieder für durchgängige Typsicherheit.
- tRPC- und KI-Tool-Schemas
- Erstellen Sie Eingabe- und Ausgabeschemas für tRPC-Prozeduren oder KI-Tools mit strukturierter Ausgabe aus einem Beispiel-Payload, statt sie von Hand zu schreiben.
Wie die Konvertierung funktioniert
- Strukturelle Inferenz
- Jedes Objekt wird zu einem benannten Schema; identische Formen werden einmal deklariert und wiederverwendet. Arrays von Objekten werden Schlüssel für Schlüssel zusammengeführt, und Schlüssel, die in manchen Elementen fehlen, werden zu .optional().
- Korrekte Typzuordnung
- Ganzzahlen werden zu z.number().int() und Dezimalzahlen zu z.number(). Strings, Booleans und null-Werte werden zu z.string(), z.boolean() und z.null(); ein Array aus gemischten Primitiven wird zu einem z.union().
- TypeScript-Typen inklusive
- Für das Root-Schema wird ein z.infer-Typ-Alias ausgegeben, sodass das Schema die einzige Quelle der Wahrheit bleibt und Ihre Typen nie von Ihrer Validierung abweichen.
- 100 % clientseitig
- Parsing und Generierung laufen in Ihrem Browser ohne Netzwerkaufrufe, sodass Ihre Daten privat bleiben.
Tipps für saubere Zod-Schemas
- Benennen Sie Ihr Root-Schema
- Vergeben Sie einen aussagekräftigen Root-Namen wie User oder ApiResponse statt des Standards Root für lesbaren, selbstdokumentierenden Code.
- z.unknown() und Unions verfeinern
- Leere oder gemischte Arrays erzeugen z.unknown() oder ein breites z.union(). Fügen Sie ein reichhaltigeres, repräsentatives Beispiel ein, damit das Werkzeug präzise Typen ableitet, und schärfen Sie dann alles nach, was mehrdeutig bleibt.
- An der Grenze validieren
- Rufen Sie safeParse() dort auf, wo nicht vertrauenswürdige Daten eintreffen — API-Antworten, Formulareingaben, Webhooks —, damit fehlerhafte Daten abgefangen werden, bevor sie Ihre Anwendungslogik erreichen.
Häufig gestellte Fragen
Wie konvertiere ich JSON in ein Zod-Schema?
Was ist der Unterschied zwischen JSON zu Zod und JSON Schema zu Zod?
Wie erhalte ich einen TypeScript-Typ aus dem Schema?
Wie werden optionale und null-Felder behandelt?
Welchen Zahlentyp erzeugt es?
Funktioniert die Ausgabe mit Zod 3 und Zod 4?
Wie validiere ich Daten mit dem erzeugten Schema?
Wie werden Arrays und gemischte Typen behandelt?
Sind meine JSON-Daten privat und sicher?
Ist das Werkzeug kostenlos? Brauche ich ein Konto?
Verwandte Werkzeuge
Alle Werkzeuge anzeigen →Base64-Dekodierer & -Kodierer
Kodierung & Formatierung
Base64 online kostenlos dekodieren und kodieren. Echtzeitkonvertierung mit voller UTF-8- und Emoji-Unterstützung. 100 % privat — läuft in Ihrem Browser. Keine Anmeldung nötig.
Base64-in-Bild-Konverter
Kodierung & Formatierung
Eine Base64-Zeichenkette oder einen Data-URI im Browser zurück in ein Bild dekodieren. Vorschau, Abmessungen & MIME ablesen, dann als PNG, JPG, GIF, SVG herunterladen. Kein Upload.
CSV-zu-JSON-Konverter
Kodierung & Formatierung
CSV im Browser nach JSON konvertieren. RFC 4180, Typinferenz, Kopfzeile, Big-Int-sicher. 100 % privat, kein Upload.
.env zu JSON Konverter
Kodierung & Formatierung
Eine .env-Datei einfügen, sofort JSON erhalten. Datenbankpasswörter, API-Keys und Tokens verlassen nie deinen Browser — 100% privat, kein Upload.
Kostenloser HTML-Entity-Decoder — HTML dekodieren
Kodierung & Formatierung
HTML-Entities dekodieren und HTML online unescapen — kostenlos, ohne Anmeldung, 100 % im Browser. Wandelt benannte, dezimale & Hex-Referenzen zurück in Zeichen; nichts wird hochgeladen.
Kostenloser HTML-Entity-Encoder — HTML escapen
Kodierung & Formatierung
HTML-Entities kodieren und Sonderzeichen escapen (< > & " ') — online, kostenlos, ohne Anmeldung, 100 % im Browser. Benannte, dezimale oder Hex-Ausgabe; nichts wird hochgeladen.