Skip to content

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.

Kein Tracking Läuft im Browser Kostenlos
Optionen
0 Zeichen
Zod-Ausgabe
0 Zeilen
Ausgabe anhand der Parsing-Semantik von Zod v3 und v4 für reale API-Payloads verifiziert. — Go Tools Team · Jul 2, 2026

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. 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. 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. 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?
Fügen Sie Ihr JSON in das Feld links ein. Der Konverter liest es sofort in Ihrem Browser und erzeugt rechts ein Zod-Schema, zusammen mit einem z.infer-Typ-Alias. Klicken Sie auf Kopieren, um das Ergebnis zu übernehmen — kein Upload, kein Konto, kein Warten.
Was ist der Unterschied zwischen JSON zu Zod und JSON Schema zu Zod?
Dieses Werkzeug nimmt einen JSON-Beispielwert — eine API-Antwort oder ein Objekt — und leitet daraus anhand der Form ein Zod-Schema ab. JSON Schema zu Zod ist eine andere Aufgabe: Es wandelt ein bestehendes JSON-Schema-Dokument in Zod um. Wenn Sie Rohdaten haben, nutzen Sie dieses Werkzeug. Wenn Sie bereits eine JSON-Schema-Datei haben, konvertieren Sie stattdessen diese.
Wie erhalte ich einen TypeScript-Typ aus dem Schema?
Jedes Ergebnis enthält einen z.infer-Typ-Alias, sodass Sie einen vollständig typisierten Root erhalten, ohne ihn von Hand zu schreiben. Behalten Sie das Schema als einzige Quelle der Wahrheit und lassen Sie TypeScript den Typ ableiten, damit die beiden nie auseinanderdriften. In den Optionen können Sie die z.infer-Zeile abschalten, wenn Sie nur das Schema möchten.
Wie werden optionale und null-Felder behandelt?
Wenn ein Schlüssel in manchen Array-Elementen vorkommt, in anderen aber nicht, wird sein Feld als .optional() markiert. Ein Feld, das in manchen Beispielen null ist und in anderen typisiert, wird zu .nullable(). Ein Feld, das ausschließlich null ist, wird zu z.null(). Zod behandelt optional und nullable unabhängig voneinander, sodass das Schema abbildet, wie Ihre Daten tatsächlich variieren.
Welchen Zahlentyp erzeugt es?
Ganzzahlen werden zu z.number().int(); jeder Wert mit Dezimalpunkt oder Exponent wird zu z.number(). Wenn ein Feld über mehrere Beispiele hinweg Ganzzahlen und Dezimalzahlen mischt, vereinheitlicht es sich zu z.number(), sodass die Validierung nie einen legitimen Wert ablehnt.
Funktioniert die Ausgabe mit Zod 3 und Zod 4?
Ja. Der erzeugte Code verwendet die gängige, stabile Teilmenge — z.object, z.string, z.number, z.array, z.union, .int, .optional, .nullable und z.infer —, die sich in Zod 3 und Zod 4 gleich verhält. Stellen Sie nur sicher, dass das zod-Paket in Ihrem Projekt installiert ist.
Wie validiere ich Daten mit dem erzeugten Schema?
Importieren Sie das Schema und rufen Sie RootSchema.parse(data) auf, um bei ungültiger Eingabe einen Fehler zu werfen, oder RootSchema.safeParse(data), um ohne Werfen ein typisiertes Erfolgs- oder Fehlerergebnis zu erhalten. Das ist ideal an Vertrauensgrenzen wie API-Antworten, Formulareingaben und Umgebungskonfiguration.
Wie werden Arrays und gemischte Typen behandelt?
Ein Array eines Typs wird zu z.array dieses Typs. Ein Array von Objekten wird Schlüssel für Schlüssel zu einem einzigen Element-Schema zusammengeführt. Ein Array, das primitive Typen mischt, wird zu einem z.union, und alles Uneindeutigere fällt auf z.unknown zurück, sodass Sie es aus einem reichhaltigeren Beispiel verfeinern können.
Sind meine JSON-Daten privat und sicher?
Ja. Die Konvertierung läuft zu 100 % in Ihrem Browser mit JavaScript. Ihr JSON — einschließlich Tokens, IDs oder Kundendaten — verlässt die Seite niemals und wird nie an einen Server gesendet.
Ist das Werkzeug kostenlos? Brauche ich ein Konto?
Es ist völlig kostenlos, ohne Anmeldung, ohne Limits und ohne Werbung, die den Arbeitsbereich überlädt.

Verwandte Werkzeuge

Alle Werkzeuge anzeigen →