JSON to Zod
Generate Zod schemas from JSON
Opsi skema
Diekspor sebagai const. Tipe hasil inferensi diekspor sebagai Root.
Masukan JSON
Batas: 5 MiB per berkas atau 5.242.880 karakter, 256 tingkat bersarang.
Skema Zod
Setiap elemen array diperiksa: tipe yang berbeda menjadi z.union(...), dan kunci yang tidak ada di sebagian objek menjadi .optional(). Anggap hasilnya titik awal lalu perketat dengan format, enum, atau batasan.
Apa yang dilakukan JSON to Zod
JSON to Zod mengubah contoh JSON menjadi skema Zod untuk validasi runtime di TypeScript. JSON lebih dulu disimpulkan menjadi pohon skema yang tidak terikat pustaka, lalu dihasilkan sebagai kode Zod, mencakup string, angka, boolean, null, objek bersarang, array, dan array berisi objek. Unduhannya berupa modul .ts siap impor dengan import { z } from "zod", skema yang diekspor, dan tipe yang diekspor menggunakan z.infer.
Cara menggunakan
- 1.Tempel contoh JSON, unggah berkas .json, jatuhkan berkas ke editor, atau muat contoh.
- 2.Atur nama skema akar, misalnya UserSchema; tipe yang diekspor menjadi User.
- 3.Tinjau kode yang dihasilkan dan catatan tentang tipe yang belum pasti.
- 4.Salin kode atau unduh sebagai berkas .ts. Hapus mengosongkan editor.
Cara tipe disimpulkan
- •Setiap elemen array diperiksa, bukan hanya yang pertama. Elemen dengan jenis berbeda menjadi z.union([...]).
- •Objek dalam array yang sama digabungkan: kunci yang tidak ada di sebagian objek menjadi .optional(), dan kunci yang kadang bernilai null menjadi union dengan z.null().
- •Array kosong tidak memberi petunjuk, sehingga elemennya z.unknown() dan catatan ditampilkan.
- •Nilai yang selalu null tetap z.null() dengan catatan, karena tipe sebenarnya tidak dapat diketahui dari contoh.
- •Kunci selalu diberi tanda kutip, sehingga nama seperti "user-id" atau "__proto__" ditangani dengan aman.
Batas dan akurasi
Contoh hanya menunjukkan bentuk data pada satu waktu, bukan kontrak lengkap. Tambahkan sendiri format (email, url, datetime), enum, min/max, atau .strict() jika API Anda menjaminnya. Bilangan bulat di luar rentang aman JavaScript ditandai karena kehilangan presisi saat diurai. Masukan dibatasi 5 MiB dan 256 tingkat bersarang, dan semuanya berjalan di browser Anda.
