JSON naar Zod-schema omzetter
Plak JSON en krijg direct een kant-en-klaar Zod-schema, 100% in je browser. Correcte z.number().int(), .optional() en .nullable(), plus een z.infer-type. Gratis.
Opties
Wat is een Zod-schema?
Een Zod-schema is een TypeScript-first-beschrijving van de vorm van een waarde die data valideert tijdens runtime en een statisch type afleidt tijdens het compileren. Er een genereren uit een JSON-voorbeeld betekent dat je nooit met de hand validatie-boilerplate schrijft voor API-responses, formulieren of configuratiebestanden. Deze Zod-schemagenerator leidt correcte typen af, markeert ontbrekende sleutels als .optional(), null-waarden als .nullable(), en geeft je een z.infer-type — allemaal 100% in je browser.
Voorbeelden
API-respons
{"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>;
Een typische REST-payload wordt een kant-en-klaar Zod-schema. Gehele getallen leiden z.number().int() af, en de roles-array wordt z.array(z.string()). Een z.infer-type krijg je er gratis bij.
Genest object
{"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>;
Geneste objecten worden hun eigen benoemde schema (OwnerSchema) en worden per veld gerefereerd. Kindschema's worden gedeclareerd vóór het ouderschema dat ze gebruikt, en identieke vormen worden eenmaal gedeclareerd en hergebruikt.
Array van objecten (optioneel veld)
{"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 van objecten worden samengevoegd tot één element-schema. Een sleutel die in sommige items ontbreekt, wordt .optional(), zodat het parsen ook slaagt wanneer hij afwezig is.
Nullable veld en getalunificatie
{"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>;
Een veld dat in sommige voorbeelden null is maar in andere getypeerd, wordt .nullable(). Omdat 0.1 een decimaalpunt heeft, unificeert het getal naar z.number() in plaats van z.number().int().
Zo zet je JSON om naar Zod
- 1
Plak je JSON
Zet een JSON-object, array of API-respons in het invoerveld. De conversie start direct.
- 2
Stem de uitvoer af
Hernoem het root-schema en schakel de import-regel, het z.infer-type of het export-sleutelwoord om, passend bij de stijl van je project.
- 3
Kopieer of download
Haal het gegenereerde Zod-schema met één klik op en plak het rechtstreeks in je validatielaag.
Common Use Cases
- API-responses valideren
- Zet een voorbeeldrespons van REST of GraphQL om in een Zod-schema en parse die op de fetch-grens, zodat misvormde data snel faalt met een duidelijke fout in plaats van door je app te lekken.
- Typeveilige formulieren en invoer
- Genereer een schema voor formulier- of query-invoer en hergebruik het z.infer-type in je UI en handlers voor end-to-end-typeveiligheid.
- tRPC- en AI-tool-schema's
- Genereer invoer- en uitvoerschema's voor tRPC-procedures of AI-tools met gestructureerde uitvoer uit een voorbeeldpayload in plaats van ze met de hand te schrijven.
Hoe de conversie werkt
- Structurele afleiding
- Elk object wordt een benoemd schema; identieke vormen worden eenmaal gedeclareerd en hergebruikt. Arrays van objecten worden sleutel voor sleutel samengevoegd, en sleutels die in sommige items ontbreken, worden .optional().
- Correcte typetoewijzing
- Gehele getallen worden z.number().int() en decimalen z.number(). Strings, booleans en null-waarden worden z.string(), z.boolean() en z.null(); een array van gemengde primitieven wordt een z.union().
- TypeScript-typen inbegrepen
- Voor het root-schema wordt een z.infer-type-alias uitgegeven, zodat het schema de enige bron van waarheid blijft en je typen nooit afwijken van je validatie.
- 100% aan de clientzijde
- Het parsen en genereren draait in je browser zonder netwerkaanroepen, zodat je data privé blijft.
Tips voor schone Zod-schema's
- Geef je root-schema een naam
- Stel een betekenisvolle rootnaam in zoals User of ApiResponse in plaats van de standaard Root voor leesbare, zelfdocumenterende code.
- Verfijn z.unknown() en unions
- Lege of gemengde arrays produceren z.unknown() of een brede z.union(). Plak een rijker, representatief voorbeeld zodat de tool precieze typen afleidt, en scherp daarna alles aan wat dubbelzinnig blijft.
- Valideer aan de grens
- Roep safeParse() aan waar niet-vertrouwde data binnenkomt — API-responses, formulierinvoer, webhooks —, zodat foute data wordt opgevangen voordat ze je applicatielogica bereikt.
Veelgestelde vragen
Hoe zet ik JSON om naar een Zod-schema?
Wat is het verschil tussen JSON naar Zod en JSON Schema naar Zod?
Hoe krijg ik een TypeScript-type uit het schema?
Hoe worden optionele en null-velden afgehandeld?
Welk getaltype genereert het?
Werkt de uitvoer met Zod 3 en Zod 4?
Hoe valideer ik data met het gegenereerde schema?
Hoe worden arrays en gemengde typen afgehandeld?
Zijn mijn JSON-gegevens privé en veilig?
Is de tool gratis? Heb ik een account nodig?
Gerelateerde tools
Alle tools bekijken →Base64 decoderen en encoderen online
Encodering en formattering
Base64 decoderen en encoderen direct in je browser. Realtime conversie met volledige UTF-8- en emoji-ondersteuning. 100% privé — geen account nodig.
Base64 naar afbeelding converter
Encodering en formattering
Decodeer een Base64-string of data-URI terug naar een afbeelding in je browser. Bekijk voorbeeld, lees afmetingen & MIME, download als PNG, JPG, GIF, SVG. Geen upload.
CSV naar JSON omzetter
Encodering en formattering
Zet CSV om naar JSON in uw browser. RFC 4180, type-afleiding, headerregel, big-int veilig. 100% privé, geen upload.
.env naar JSON Converter
Encodering en formattering
Plak een .env-bestand, krijg direct JSON. Je wachtwoorden, API-sleutels en tokens verlaten nooit je browser — 100% privé, gratis dotenv-parser.
Gratis HTML-entiteiten decoder — HTML unescapen
Encodering en formattering
Decodeer HTML-entiteiten en unescape HTML online — gratis, geen account, 100% in je browser. Zet genoemde, decimale & hex-referenties terug naar tekens; nooit geüpload.
Gratis HTML-entiteiten encoder — HTML escapen
Encodering en formattering
Encodeer HTML-entiteiten en escape speciale tekens (< > & " ') online — gratis, geen account, 100% in je browser. Genoemde, decimale of hex-uitvoer; nooit geüpload.