Konwerter JSON na Zod — Generator schematów
Konwertuj JSON na schematy Zod online z zagnieżdżonymi obiektami, tablicami, polami opcjonalnymi i nullable oraz typami z z.infer. Za darmo i prywatnie.
🔒 Działa całkowicie w Twojej przeglądarce — nic nie jest przesyłaneSchematy Zod generowane z JSON
Typy TypeScript znikają w czasie działania, więc dane z API, formularza lub localStorage są tak bezpieczne, jak kod, który je sprawdza. Zod wypełnia tę lukę, walidując wartości względem schematu i wnioskując typ TypeScript z tego samego schematu. Ten konwerter JSON na Zod pisze schemat za Ciebie: wklej przykład JSON, a każdy obiekt stanie się z.object, typy proste zostaną zmapowane na z.string(), z.number() i z.boolean(), tablice — na z.array(...), a zagnieżdżone obiekty dostaną własne nazwane schematy, używane ponownie wszędzie tam, gdzie występują.
Narzędzie działa dzięki quicktype, który łączy każdy element każdej tablicy, zanim wywnioskuje typy. Pola występujące tylko w części elementów są oznaczane jako opcjonalne, a wartości, które czasem mają wartość null, jako nullable, więc schemat akceptuje prawdziwe dane, które widziałeś, a nie tylko pierwszy element.
Schematy i wnioskowane typy razem
Domyślnie wynik eksportuje też typ TypeScript dla każdego schematu za pomocą z.infer, co daje jedno źródło prawdy dla walidacji i typowania statycznego. Zaimportuj schemat główny i wywołaj RootSchema.parse(data), aby zwalidować niezaufaną wartość i otrzymać wynik z typem, lub safeParse, gdy chcesz obsługiwać błędy bez wyjątków. Zaznacz Schemas only, jeśli wolisz deklarować typy gdzie indziej. To naturalne uzupełnienie narzędzia JSON do TypeScript, gdy potrzebujesz gwarancji w czasie działania, a nie tylko podpowiedzi podczas kompilacji.
Wskazówki dla bardziej rygorystycznych schematów
Generuj z reprezentatywnego przykładu z kilkoma elementami tablicy i wypełnionymi polami opcjonalnymi. Następnie dopracuj to, czego przykład nie może pokazać: dodaj .email(), .url() lub .uuid() do pól tekstowych, użyj z.enum dla pól o stałym zbiorze wartości, ogranicz liczby za pomocą .int() lub .min() i zdecyduj, czy nieznane klucze mają być usuwane, czy odrzucane przez .strict(). Całe generowanie odbywa się lokalnie, więc możesz bezpiecznie wklejać dane z produkcji.
Jak używać
- Wklej JSONWklej odpowiedź API lub dowolny przykład JSON albo kliknij Load sample.
- Nazwij korzeńUstaw nazwę schematu głównego i zdecyduj, czy dołączyć wnioskowane typy.
- Skopiuj schematySkopiuj kod TypeScript lub pobierz plik .ts i waliduj za pomocą schema.parse().
Najczęściej zadawane pytania
Co zawiera wynik?
z.infer. Zaznacz Schemas only, aby pominąć aliasy typów.Jak obsługiwane są pola opcjonalne i nullable?
.optional() lub .nullable(), więc walidacja akceptuje warianty występujące w prawdziwych danych.Na którą wersję Zod są nastawione schematy?
z.object, z.array, z.string i z.number, które działają zarówno w Zod 3, jak i Zod 4.