Pengembang / Jenis
Konverter JSON ke Skema Zod
Buat skema Zod dan tipe TypeScript-nya dari contoh JSON, termasuk objek bertingkat, array, field opsional dan nullable, serta bilangan bulat.
Konverter JSON ke Skema Zod: Setiap objek dalam contoh diubah menjadi skema z.object, diekspor bersama tipe yang diinferensikan darinya, dan objek bertingkat mendapatkan skema bernama masing-masing. Objek dalam array digabungkan: key yang tidak ada pada sebagian objek mendapat .optional(), key yang terkadang bernilai null mendapat .nullable(), dan bilangan bulat mendapat .int(). Skema yang dihasilkan telah diperiksa dengan mengurai contoh datanya sendiri menggunakan Zod. Berjalan 100% lokal di browser Anda tanpa upload file ke server.
- Kategori
- Tools developer
- Dijalankan
- Di browser Anda
- Biaya
- Gratis · tanpa daftar
- Ketersediaan
- Siap digunakan
Berjalan sepenuhnya di browser Anda
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);
Setiap objek mendapatkan schema dan tipe yang diinferensikan. Key yang tidak ada pada beberapa objek mendapatkan .optional(), key yang terkadang bernilai null mendapatkan .nullable(), dan bilangan bulat mendapatkan .int(); longgarkan aturan apa pun yang tidak dijamin oleh API Anda.
Menggunakan schema
Panggil Schema.parse(data) untuk memvalidasi dan menghasilkan error pada data yang tidak valid, atau Schema.safeParse(data) untuk mendapatkan hasil yang dapat diperiksa tanpa try dan catch. Tipe yang diekspor dari z.infer tetap selaras dengan schema saat Anda mengeditnya.
Jika Anda hanya memerlukan tipe saat compile-time, JSON to TypeScript menyediakan interface biasa; untuk memvalidasi berdasarkan JSON Schema yang sudah ada, gunakan JSON Schema validator.
Memperketat aturan yang dibuat
Sample hanya menunjukkan isi yang ada, jadi jadikan schema sebagai titik awal: tambahkan .email(), .url(), atau .datetime() ke string yang sesuai, z.enum([...]) untuk field dengan sekumpulan nilai tetap, serta .min() atau .max() jika data Anda memiliki batas.
Cara menggunakannya
- Tempel contoh JSON, idealnya berupa array dengan beberapa data yang umum.
- Beri nama pada tipe tingkat teratas.
- Salin skema tersebut dan gunakan untuk memvalidasi data saat runtime.
Privasi & batasan
JSON dikonversi di browser Anda dan tidak pernah di-upload.
Alat terkait
Pertanyaan umum
Mengapa menggunakan Zod, bukan interface TypeScript?
Interface akan hilang saat kode dikompilasi sehingga tidak dapat memeriksa data saat runtime; skema Zod dapat memeriksa data dan memberi Anda tipe yang sama dengan z.infer.
Apakah bilangan bulat benar-benar harus menggunakan .int()?
Hanya jika API Anda menjamin bilangan bulat. Jika harga atau skor dapat memiliki pecahan, hapus .int() meskipun contoh datanya hanya berisi bilangan bulat.
Apakah tool ini menangani string seperti tanggal atau email?
String tersebut diketik sebagai z.string(); tambahkan refinement seperti .email(), .url(), atau pemeriksaan tanggal sesuai kebutuhan data Anda.
Alat gratis · berjalan di browser anda · tanpa perlu akun