Skip to content

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.

Bez śledzenia Działa w przeglądarce Bezpłatne
Opcje
0 znaków
Wynik Zod
0 linii
Wynik zweryfikowano względem semantyki parsowania Zod v3 i v4 dla rzeczywistych ładunków API. — Go Tools Team · Jul 2, 2026

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. 1

    Wklej swój JSON

    Wstaw obiekt JSON, tablicę lub odpowiedź API do pola wejściowego. Konwersja zaczyna się natychmiast.

  2. 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. 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?
Wklej swój JSON do pola po lewej stronie. Konwerter odczytuje go natychmiast w przeglądarce i generuje schemat Zod po prawej stronie, wraz z aliasem typu z.infer. Kliknij Skopiuj, aby przejąć wynik — bez przesyłania, bez konta, bez czekania.
Jaka jest różnica między JSON na Zod a JSON Schema na Zod?
To narzędzie przyjmuje przykładową wartość JSON — odpowiedź API lub obiekt — i wnioskuje schemat Zod z jej kształtu. JSON Schema na Zod to inne zadanie: konwertuje istniejący dokument JSON Schema na Zod. Jeśli masz surowe dane, użyj tego narzędzia. Jeśli masz już plik JSON Schema, przekonwertuj właśnie jego.
Jak uzyskać typ TypeScript ze schematu?
Każdy wynik zawiera alias typu z.infer, więc otrzymujesz w pełni otypowany Root bez pisania go ręcznie. Zachowaj schemat jako jedyne źródło prawdy i pozwól, aby TypeScript wywnioskował typ — dzięki temu oba nigdy się nie rozjadą. Linię z.infer możesz wyłączyć w panelu Opcje, jeśli chcesz tylko schemat.
Jak obsługiwane są pola opcjonalne i null?
Gdy klucz pojawia się w niektórych elementach tablicy, ale nie w innych, jego pole jest oznaczane jako .optional(). Pole, które w części próbek jest null, a w innych ma typ, staje się .nullable(). Pole, które zawsze jest tylko null, staje się z.null(). Zod traktuje optional i nullable niezależnie, więc schemat odzwierciedla to, jak faktycznie zmieniają się twoje dane.
Jaki typ liczbowy generuje?
Liczby całkowite są mapowane na z.number().int(); każda wartość zapisana z kropką dziesiętną lub wykładnikiem jest mapowana na z.number(). Jeśli pole miesza liczby całkowite i dziesiętne w różnych próbkach, unifikuje się do z.number(), aby walidacja nigdy nie odrzuciła prawidłowej wartości.
Czy wynik działa z Zod 3 i Zod 4?
Tak. Wygenerowany kod korzysta ze wspólnego, stabilnego podzbioru — z.object, z.string, z.number, z.array, z.union, .int, .optional, .nullable oraz z.infer — który zachowuje się tak samo w Zod 3 i Zod 4. Upewnij się tylko, że pakiet zod jest zainstalowany w twoim projekcie.
Jak walidować dane za pomocą wygenerowanego schematu?
Zaimportuj schemat i wywołaj RootSchema.parse(data), aby rzucić wyjątek przy nieprawidłowych danych, lub RootSchema.safeParse(data), aby otrzymać otypowany wynik sukcesu lub błędu bez rzucania wyjątku. Idealnie sprawdza się to na granicach zaufania, takich jak odpowiedzi API, dane z formularzy i konfiguracja środowiska.
Jak obsługiwane są tablice i typy mieszane?
Tablica jednego typu staje się z.array tego typu. Tablica obiektów jest scalana klucz po kluczu w jeden schemat elementu. Tablica mieszająca typy proste staje się z.union, a wszystko bardziej niejednoznaczne wraca do z.unknown, abyś mógł doprecyzować to na podstawie bogatszej próbki.
Czy moje dane JSON są prywatne i bezpieczne?
Tak. Konwersja odbywa się w 100% w przeglądarce przy użyciu JavaScript. Twój JSON — w tym tokeny, identyfikatory czy dane klientów — nigdy nie opuszcza strony i nigdy nie jest wysyłany na serwer.
Czy narzędzie jest bezpłatne? Czy potrzebuję konta?
Jest całkowicie bezpłatne, bez rejestracji, bez limitów i bez reklam zaśmiecających obszar roboczy.

Powiązane narzędzia

Zobacz wszystkie narzędzia →