Razvoj / Tipovi
Konvertor JSON-a u Zod šemu
Generišite Zod šemu i njen TypeScript tip iz JSON uzorka, uz podršku za ugnježdene objekte, nizove, opciona i nullable polja i cele brojeve.
Konvertor JSON-a u Zod šemu: Svaki objekat u uzorku postaje z.object šema, uz izvezeni tip izveden iz nje, a ugnježdeni objekti dobijaju sopstvene imenovane šeme. Objekti u nizu se objedinjuju: ključevi koji nedostaju u nekim objektima dobijaju .optional(), ključevi koji su ponekad null dobijaju .nullable(), a celi brojevi dobijaju .int(). Generisane šeme proverene su parsiranjem sopstvenih uzoraka pomoću Zod-a. Radi 100% lokalno u vašem pregledaču, bez otpremanja datoteka na server.
- Kategorija
- Alatke za programere
- Pokretanja
- U vašem pregledaču
- Trošak
- Besplatno · bez registracije
- Dostupnost
- Spremno za upotrebu
U potpunosti radi u vašem pregledaču
TypeScript
import { z } from "zod";
export const AddressSchema = z.object({
city: z.string(),
zip_code: z.string(),
});
export type Address = z.infer<typeof AddressSchema>;
export const UserSchema = z.object({
id: z.number().int(),
user_name: z.string(),
avatar_url: z.string(),
score: z.number(),
tags: z.array(z.string()),
address: AddressSchema,
manager_id: z.number().int().nullable(),
nickname: z.string().optional(),
});
export type User = z.infer<typeof UserSchema>;
export const UserListSchema = z.array(UserSchema);
Svaki objekat dobija šemu i izvedeni tip. Ključevi koji nedostaju u nekim objektima dobijaju .optional(), ključevi koji su ponekad null dobijaju .nullable(), a celi brojevi dobijaju .int(); ublažite svako pravilo koje vaš API ne garantuje.
Korišćenje šeme
Pozovite Schema.parse(data) da proverite podatke i dobijete grešku za neispravne vrednosti ili Schema.safeParse(data) da biste dobili rezultat koji možete proveriti bez try i catch. Izvezeni tip, dobijen pomoću z.infer, ostaje usklađen sa šemom dok je uređujete.
Ako su vam potrebni samo tipovi tokom kompajliranja, JSON to TypeScript daje obične interfejse; za proveru prema postojećoj JSON Schema koristite JSON Schema.
Preciziranje generisanih pravila
Primer prikazuje samo ono što sadrži, pa šemu posmatrajte kao početnu tačku: dodajte .email(), .url() ili .datetime() stringovima tamo gde se primenjuju, z.enum([...]) poljima sa unapred definisanim skupom vrednosti, a .min() ili .max() tamo gde vaši podaci imaju ograničenja.
Kako se koristi
- Nalepite JSON uzorak, po mogućnosti niz sa nekoliko tipičnih zapisa.
- Imenujte tip najvišeg nivoa.
- Kopirajte šeme i koristite ih za proveru podataka tokom izvršavanja.
Privatnost i ograničenja
JSON se konvertuje u vašem pregledaču i nikada se ne otprema.
Srodne alatke
Često postavljana pitanja
Zašto koristiti Zod umesto TypeScript interfejsa?
Interfejs nestaje kada se kod kompajlira, pa ne može da proverava podatke tokom izvršavanja; Zod šema proverava podatke i daje vam isti tip pomoću z.infer.
Da li celi brojevi zaista treba da budu .int()?
Samo ako vaš API garantuje cele brojeve. Ako cena ili rezultat mogu imati decimalni deo, uklonite .int() čak i kada uzorak sadrži samo cele brojeve.
Da li obrađuje stringove kao što su datumi ili imejl adrese?
Oni se tipiziraju kao z.string(); dodajte dodatne provere kao što su .email(), .url() ili provera datuma tamo gde su potrebne za vaše podatke.
Besplatan alat · pokretanja: u vašem pregledaču · nalog nije potreban