Konverter JSON ke Skema Zod
Tempel JSON, dapatkan skema Zod siap pakai seketika, 100% di browser Anda. z.number().int(), .optional() dan .nullable() yang benar, plus tipe z.infer. Gratis.
Opsi
Apa itu skema Zod?
Skema Zod adalah deskripsi bentuk sebuah nilai yang mengutamakan TypeScript, yang memvalidasi data saat runtime dan menyimpulkan tipe statis saat kompilasi. Membuatnya dari sampel JSON berarti Anda tak pernah menulis tangan boilerplate validasi untuk respons API, formulir, atau file konfigurasi. Generator skema Zod ini menyimpulkan tipe yang benar, menandai kunci yang absen sebagai .optional(), nilai null sebagai .nullable(), dan memberi Anda tipe z.infer — semuanya 100% di browser Anda.
Contoh
Respons API
{"id":101,"name":"Ada Lovelace","email":"ada@example.com","active":true,"roles":["admin","user"]} import { z } from "zod";
export const RootSchema = z.object({
id: z.number().int(),
name: z.string(),
email: z.string(),
active: z.boolean(),
roles: z.array(z.string()),
});
export type Root = z.infer<typeof RootSchema>;
Payload REST yang khas menjadi skema Zod siap pakai. Bilangan bulat disimpulkan z.number().int(), dan array roles menjadi z.array(z.string()). Tipe z.infer disertakan gratis.
Objek bertingkat
{"repo":"zod","owner":{"login":"colinhacks","id":100}} import { z } from "zod";
export const OwnerSchema = z.object({
login: z.string(),
id: z.number().int(),
});
export const RootSchema = z.object({
repo: z.string(),
owner: OwnerSchema,
});
export type Root = z.infer<typeof RootSchema>;
Objek bertingkat menjadi skema bernama tersendiri (OwnerSchema) yang direferensikan per field. Skema anak dideklarasikan sebelum induk yang memakainya, dan bentuk yang identik dideklarasikan sekali lalu dipakai ulang.
Array objek (field opsional)
{"users":[{"id":1,"nick":"x"},{"id":2}]} import { z } from "zod";
export const UserSchema = z.object({
id: z.number().int(),
nick: z.string().optional(),
});
export const RootSchema = z.object({
users: z.array(UserSchema),
});
export type Root = z.infer<typeof RootSchema>;
Array objek digabung menjadi satu skema elemen. Kunci yang hilang dari sebagian item menjadi .optional(), sehingga parsing tetap berhasil saat kunci itu absen.
Field nullable dan unifikasi angka
{"items":[{"sku":"A1","discount":0.1},{"sku":"A2","discount":null}]} import { z } from "zod";
export const ItemSchema = z.object({
sku: z.string(),
discount: z.number().nullable(),
});
export const RootSchema = z.object({
items: z.array(ItemSchema),
});
export type Root = z.infer<typeof RootSchema>;
Field yang null di sebagian sampel tetapi bertipe di sampel lain menjadi .nullable(). Karena 0.1 memiliki titik desimal, angkanya diseragamkan menjadi z.number() alih-alih z.number().int().
Cara mengonversi JSON ke Zod
- 1
Tempel JSON Anda
Masukkan objek JSON, array, atau respons API ke kolom input. Konversi dimulai seketika.
- 2
Setel output
Ganti nama skema root dan aktifkan atau nonaktifkan baris import, tipe z.infer, atau kata kunci export agar sesuai gaya proyek Anda.
- 3
Salin atau unduh
Ambil skema Zod yang dihasilkan dengan satu klik dan tempel langsung ke lapisan validasi Anda.
Common Use Cases
- Validasi respons API
- Ubah sampel respons REST atau GraphQL menjadi skema Zod dan parsing di batas fetch, agar data yang cacat gagal cepat dengan error yang jelas alih-alih bocor ke seluruh aplikasi Anda.
- Formulir dan input yang aman-tipe
- Hasilkan skema untuk input formulir atau kueri dan pakai ulang tipe z.infer di seluruh UI dan handler Anda untuk keamanan tipe menyeluruh.
- Skema tRPC dan alat AI
- Bootstrap skema input dan output untuk prosedur tRPC atau alat keluaran-terstruktur AI dari contoh payload alih-alih menulisnya dengan tangan.
Cara kerja konversi
- Inferensi struktural
- Setiap objek menjadi skema bernama; bentuk yang identik dideklarasikan sekali lalu dipakai ulang. Array objek digabung kunci demi kunci, dan kunci yang absen dari sebagian item menjadi .optional().
- Pemetaan tipe yang benar
- Bilangan bulat dipetakan ke z.number().int() dan desimal ke z.number(). String, boolean, dan null dipetakan ke z.string(), z.boolean(), dan z.null(); array primitif campuran menjadi z.union().
- Tipe TypeScript disertakan
- Alias tipe z.infer dikeluarkan untuk skema root, sehingga skema tetap menjadi satu sumber kebenaran dan tipe Anda tak pernah menyimpang dari validasi Anda.
- 100% sisi klien
- Parsing dan pembuatan berjalan di browser Anda tanpa panggilan jaringan, sehingga data Anda tetap privat.
Tips untuk skema Zod yang rapi
- Beri nama skema root Anda
- Tetapkan nama root yang bermakna seperti User atau ApiResponse alih-alih Root bawaan agar kode mudah dibaca dan mendokumentasikan dirinya sendiri.
- Perhalus z.unknown() dan union
- Array kosong atau campuran menghasilkan z.unknown() atau z.union() yang luas. Tempel sampel yang lebih kaya dan representatif agar alat menyimpulkan tipe yang presisi, lalu perketat apa pun yang masih ambigu.
- Validasi di batas
- Panggil safeParse() tempat data tak tepercaya masuk — respons API, input formulir, webhook — agar data buruk tertangkap sebelum mencapai logika aplikasi Anda.
Pertanyaan yang sering diajukan
Bagaimana cara mengonversi JSON menjadi skema Zod?
Apa bedanya JSON ke Zod dengan JSON Schema ke Zod?
Bagaimana cara mendapatkan tipe TypeScript dari skema?
Bagaimana field opsional dan null ditangani?
Tipe angka apa yang dihasilkan?
Apakah output berfungsi dengan Zod 3 dan Zod 4?
Bagaimana cara memvalidasi data dengan skema yang dihasilkan?
Bagaimana array dan tipe campuran ditangani?
Apakah data JSON saya privat dan aman?
Apakah alat ini gratis? Apakah saya perlu akun?
Alat Terkait
Lihat semua alat →Decode & Encode Base64 Online — Konversi Instan di Browser
Encoding & Pemformatan
Decode dan encode Base64 online gratis. Konversi real-time dengan dukungan UTF-8 dan emoji. 100% privat di browser Anda. Tanpa pendaftaran.
Konverter Base64 ke Gambar
Encoding & Pemformatan
Decode string Base64 atau data URI kembali menjadi gambar di browser. Pratinjau, baca dimensi & MIME, lalu unduh sebagai PNG, JPG, GIF, SVG. Tanpa upload.
Konverter CSV ke JSON
Encoding & Pemformatan
Konversi CSV ke JSON di browser. RFC 4180, infer tipe, baris header, aman big-int. 100% privat, tanpa unggah.
Konverter .env ke JSON
Encoding & Pemformatan
Tempel file .env, dapatkan JSON seketika. Password, kunci API, dan token tak pernah keluar dari browser — parser dotenv 100% privat, tanpa unggah, gratis.
Decoder Entitas HTML Gratis — Unescape HTML
Encoding & Pemformatan
Decode entitas HTML dan unescape HTML online — gratis, tanpa daftar, 100% di browser Anda. Mengubah referensi named, desimal & hex kembali menjadi karakter; tidak pernah diunggah.
Encoder Entitas HTML Gratis — Escape HTML
Encoding & Pemformatan
Encode entitas HTML dan escape karakter khusus (< > & " ') online — gratis, tanpa daftar, 100% di browser Anda. Output named, desimal, atau hex; tidak pernah diunggah.