Konwerter JSON na schemat Zod
Wklej JSON i uzyskaj gotowy do użycia schemat Zod natychmiast, w 100% w przeglądarce. Poprawne z.number().int(), .optional() i .nullable() oraz typ z.infer. Bezpłatnie.
Opcje
Czym jest schemat Zod?
Schemat Zod to opis kształtu wartości w duchu TypeScript, który waliduje dane w czasie wykonania i wnioskuje statyczny typ w czasie kompilacji. Wygenerowanie go z próbki JSON oznacza, że nigdy nie piszesz ręcznie szablonowego kodu walidacji dla odpowiedzi API, formularzy czy plików konfiguracyjnych. Ten generator schematów Zod wnioskuje poprawne typy, oznacza brakujące klucze jako .optional(), wartości null jako .nullable() i wręcza ci typ z.infer — wszystko w 100% w przeglądarce.
Przykłady
Odpowiedź API
{"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>;
Typowy ładunek REST staje się gotowym do użycia schematem Zod. Liczby całkowite dają z.number().int(), a tablica roles staje się z.array(z.string()). Typ z.infer otrzymujesz za darmo.
Zagnieżdżony obiekt
{"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>;
Zagnieżdżone obiekty stają się osobnym nazwanym schematem (OwnerSchema) wskazywanym przez pole. Schematy potomne są deklarowane przed rodzicem, który ich używa, a identyczne kształty deklaruje się raz i wykorzystuje ponownie.
Tablica obiektów (pole opcjonalne)
{"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>;
Tablice obiektów są scalane w jeden schemat elementu. Klucz brakujący w niektórych elementach staje się .optional(), więc parsowanie nadal się udaje, gdy go nie ma.
Pole nullable i unifikacja liczb
{"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>;
Pole, które w części próbek jest null, a w innych ma typ, staje się .nullable(). Ponieważ 0.1 ma kropkę dziesiętną, liczba unifikuje się do z.number(), a nie z.number().int().
Jak przekonwertować JSON na Zod
- 1
Wklej swój JSON
Wstaw obiekt JSON, tablicę lub odpowiedź API do pola wejściowego. Konwersja zaczyna się natychmiast.
- 2
Dostrój wynik
Zmień nazwę schematu głównego i przełączaj linię importu, typ z.infer lub słowo kluczowe export, aby dopasować się do stylu swojego projektu.
- 3
Skopiuj lub pobierz
Przejmij wygenerowany schemat Zod jednym kliknięciem i wklej go prosto do swojej warstwy walidacji.
Common Use Cases
- Walidacja odpowiedzi API
- Zamień przykładową odpowiedź REST lub GraphQL w schemat Zod i parsuj ją na granicy pobierania, aby nieprawidłowe dane szybko zawiodły z czytelnym błędem, zamiast przeciekać przez aplikację.
- Bezpieczne typowo formularze i dane wejściowe
- Wygeneruj schemat dla danych z formularza lub zapytania i wykorzystaj ponownie typ z.infer w interfejsie i obsłudze zdarzeń, aby uzyskać pełne bezpieczeństwo typów.
- Schematy tRPC i narzędzi AI
- Zainicjuj schematy wejścia i wyjścia dla procedur tRPC lub narzędzi AI ze strukturyzowanym wyjściem na podstawie przykładowego ładunku, zamiast pisać je ręcznie.
Jak działa konwersja
- Wnioskowanie strukturalne
- Każdy obiekt staje się nazwanym schematem; identyczne kształty deklaruje się raz i wykorzystuje ponownie. Tablice obiektów są scalane klucz po kluczu, a klucze nieobecne w niektórych elementach stają się .optional().
- Poprawne mapowanie typów
- Liczby całkowite są mapowane na z.number().int(), a dziesiętne na z.number(). Ciągi, wartości logiczne i null są mapowane na z.string(), z.boolean() i z.null(); tablica mieszanych typów prostych staje się z.union().
- Typy TypeScript w komplecie
- Alias typu z.infer jest emitowany dla schematu głównego, więc schemat pozostaje jedynym źródłem prawdy, a twoje typy nigdy nie rozjeżdżają się z walidacją.
- 100% po stronie klienta
- Parsowanie i generowanie działają w przeglądarce bez wywołań sieciowych, więc twoje dane pozostają prywatne.
Wskazówki dla czystych schematów Zod
- Nazwij swój schemat główny
- Ustaw sensowną nazwę główną, np. User lub ApiResponse, zamiast domyślnego Root, aby uzyskać czytelny, samodokumentujący się kod.
- Doprecyzuj z.unknown() i unie
- Puste lub mieszane tablice dają z.unknown() lub szerokie z.union(). Wklej bogatszą, reprezentatywną próbkę, aby narzędzie wywnioskowało precyzyjne typy, a następnie zawęź to, co pozostaje niejednoznaczne.
- Waliduj na granicy
- Wywołuj safeParse() tam, gdzie wchodzą niezaufane dane — odpowiedzi API, dane z formularzy, webhooki — aby złe dane zostały przechwycone, zanim dotrą do logiki aplikacji.
Najczęściej zadawane pytania
Jak przekonwertować JSON na schemat Zod?
Jaka jest różnica między JSON na Zod a JSON Schema na Zod?
Jak uzyskać typ TypeScript ze schematu?
Jak obsługiwane są pola opcjonalne i null?
Jaki typ liczbowy generuje?
Czy wynik działa z Zod 3 i Zod 4?
Jak walidować dane za pomocą wygenerowanego schematu?
Jak obsługiwane są tablice i typy mieszane?
Czy moje dane JSON są prywatne i bezpieczne?
Czy narzędzie jest bezpłatne? Czy potrzebuję konta?
Powiązane narzędzia
Zobacz wszystkie narzędzia →Koder i dekoder Base64
Kodowanie i formatowanie
Zakoduj i zdekoduj Base64 online za darmo. Konwersja w czasie rzeczywistym z pełną obsługą UTF-8 i emoji. 100% w przeglądarce, bez rejestracji.
Konwerter Base64 na obraz
Kodowanie i formatowanie
Zdekoduj ciąg Base64 lub data URI z powrotem na obraz w przeglądarce. Podejrzyj, odczytaj wymiary i MIME, a potem pobierz jako PNG, JPG, GIF, SVG. Bez przesyłania.
Konwerter CSV na JSON
Kodowanie i formatowanie
Konwertuj CSV na JSON w przeglądarce. RFC 4180, wnioskowanie typów, nagłówek, big-int safe. 100% prywatnie, bez wysyłki.
Konwerter .env na JSON
Kodowanie i formatowanie
Wklej plik .env i od razu otrzymaj JSON. Hasła, klucze API i tokeny nigdy nie opuszczają przeglądarki — 100% prywatnie, bez wysyłania, parser dotenv.
Darmowy dekoder encji HTML — unescape HTML
Kodowanie i formatowanie
Dekoduj encje HTML i unescape HTML online — za darmo, bez rejestracji, w 100% w przeglądarce. Zamienia odwołania nazwane, dziesiętne & szesnastkowe z powrotem na znaki; nic nie jest wysyłane.
Darmowy koder encji HTML — escape HTML
Kodowanie i formatowanie
Koduj encje HTML i znaki specjalne (< > & " ') online — za darmo, bez rejestracji, w 100% w przeglądarce. Wynik nazwany, dziesiętny lub szesnastkowy; nic nie jest wysyłane.