UTILS.
100% di peramban
🛡️

JSON ke Skema Zod

Tempel contoh nilai JSON dan hasilkan skema Zod plus tipe TypeScript yang disimpulkan, sehingga satu bentuk memvalidasi saat runtime dan mengetik saat compile.

keluaran

Tentang alat ini

Alat JSON ke Skema Zod mengubah contoh JSON yang ditempel menjadi skema Zod siap pakai dan tipe TypeScript yang cocok. Zod adalah pustaka validasi TypeScript paling dominan, dan menulis pohon z.object secara manual untuk payload API sungguhan itu lambat dan rawan kesalahan. Konverter ini mem-parsing JSON Anda dengan JSON.parse, menelusuri nilai secara rekursif, dan menghasilkan Zod yang idiomatik: string menjadi z.string(), bilangan bulat z.number().int(), angka lain z.number(), boolean z.boolean(), null z.null(), dan objek bersarang skema z.object({...}) bernama masing-masing.

Semuanya berjalan secara lokal di browser Anda — JSON Anda diproses di halaman dan tidak pernah diunggah, sehingga payload sensitif tetap ada di perangkat Anda. Array menyimpulkan tipe elemennya dengan menggabungkan (deep-merge) setiap elemen, sehingga array objek dengan kunci yang sedikit berbeda menghasilkan satu skema di mana kunci yang hilang dari sebagian elemen ditandai .optional(). String tanggal-waktu ISO-8601 dikenali dan dihasilkan sebagai z.string().datetime(). Kunci objek yang bukan pengidentifikasi valid dikutip dengan aman.

Outputnya adalah modul lengkap: sebuah const yang diekspor untuk setiap skema objek (anak didefinisikan sebelum induk yang merujuknya) diikuti oleh export type Root = z.infer<typeof Root>, sehingga Anda mendapatkan tipe saat compile secara gratis. Gunakan kotak nama-root untuk mengganti nama skema tingkat atas, dan sakelar kunci-hilang untuk memperlakukan kunci yang tidak ada sebagai .optional() (default) atau .nullable(). Salin hasilnya atau unduh sebagai berkas .ts.

Pertanyaan yang sering diajukan

Bagaimana tipe JSON dipetakan ke Zod?
string ke z.string(), string tanggal-waktu ISO ke z.string().datetime(), bilangan bulat ke z.number().int(), angka lain ke z.number(), boolean ke z.boolean(), null ke z.null(), array ke z.array(...), dan objek ke z.object({...}) bernama. Array kosong menjadi z.array(z.unknown()).
Bagaimana field opsional atau nullable ditangani?
Ketika elemen array atau saudara yang digabung tidak memiliki suatu kunci, kunci itu ditandai .optional(). Nilai yang terlihat sebagai null menjadi z.null() atau menambahkan .nullable(). Sakelar kunci-hilang memungkinkan Anda menghasilkan .optional() (default) atau .nullable() untuk kunci yang tidak ada di sebagian sampel.
Apakah juga memberi saya tipe TypeScript?
Ya. Setelah skema, ia menghasilkan export type Root = z.infer<typeof Root>, sehingga tipe statis yang disimpulkan berasal dari skema itu sendiri — satu sumber kebenaran untuk validasi runtime maupun tipe saat compile.
Apakah JSON saya diunggah ke mana pun?
Tidak. Parsing dan pembuatan kode terjadi sepenuhnya di browser Anda dengan JSON.parse dan JavaScript biasa. Tidak ada yang dikirim ke server, jadi Anda dapat menempel respons API pribadi dengan aman.

Alat lainnya