DT Dev Tools

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łane

Reklama

Schematy 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ć

  1. Wklej JSONWklej odpowiedź API lub dowolny przykład JSON albo kliknij Load sample.
  2. Nazwij korzeńUstaw nazwę schematu głównego i zdecyduj, czy dołączyć wnioskowane typy.
  3. Skopiuj schematySkopiuj kod TypeScript lub pobierz plik .ts i waliduj za pomocą schema.parse().

Najczęściej zadawane pytania

Co zawiera wynik?
Schemat Zod dla każdego obiektu w Twoim JSON oraz typy TypeScript wnioskowane za pomocą z.infer. Zaznacz Schemas only, aby pominąć aliasy typów.
Jak obsługiwane są pola opcjonalne i nullable?
Pola nieobecne lub mające wartość null w niektórych przykładach dostają .optional() lub .nullable(), więc walidacja akceptuje warianty występujące w prawdziwych danych.
Na którą wersję Zod są nastawione schematy?
Schematy używają podstawowych API z.object, z.array, z.string i z.number, które działają zarówno w Zod 3, jak i Zod 4.
Czy mój JSON jest przesyłany?
Nie. Schematy są generowane w całości w Twojej przeglądarce.
Reklama