Kategori: Alat pengembang

Konverter JSON ke Skema Zod

Ide kami sendiriAlatnya tidak ada?

Buat skema Zod dari contoh JSON tanpa mengunggah data Anda

Tempel JSON dan hasilkan skema Zod di peramban Anda. Menyimpulkan objek, larik, string, angka, boolean, nilai null, dan bidang opsional, lalu salin keluaran yang siap dipakai di TypeScript. Tidak ada yang diunggah.

Skema Zod
import { z } from "zod";

export const userSchema = z.object({
  id: z.number(),
  name: z.string(),
  isActive: z.boolean(),
  score: z.null(),
  tags: z.array(z.string()),
  address: z.object({
    city: z.string(),
    country: z.string(),
  }),
  posts: z.array(z.object({
    slug: z.string(),
    views: z.number(),
    pinned: z.boolean().optional(),
  })),
});

export type User = z.infer<typeof userSchema>;

Disimpulkan hanya dari contoh ini: alat ini tahu sebuah bidang berisi string, bukan bahwa string itu harus berupa email, punya panjang minimum, atau cocok dengan salah satu nilai yang diizinkan. Perlakukan hasilnya sebagai titik awal dan perketat aturannya sendiri.

Semua yang ada di halaman ini diproses di peramban Anda. Tidak ada yang diunggah.

Semua yang ada di halaman ini diproses di peramban Anda. Tidak ada yang diunggah.

Apa fungsi alat ini

Alat ini membaca contoh JSON secara lokal dan menyusun draf skema objek Zod yang sesuai, termasuk objek bersarang, larik, dan union. Ketika sebuah larik memuat objek yang tidak seragam — satu elemen punya bidang `pinned` dan elemen berikutnya tidak — kuncinya ditandai `.optional()` alih-alih dibuang diam-diam, karena justru ketidaksesuaian itulah yang biasanya paling perlu Anda sadari. Nilai yang kadang null menjadi `.nullable()`, bukan union dua anggota. Yang tidak bisa dilakukannya adalah mengarang aturan yang tak pernah dilihatnya: data contoh menunjukkan sebuah bidang berisi string, bukan bahwa string itu harus berupa email, di bawah 80 karakter, atau salah satu dari tiga nilai yang diizinkan. Keluarannya adalah kerangka untuk diperketat, bukan kontrak yang sudah jadi.

Cara memakainya

  1. Tempel contoh JSON yang mewakili — makin banyak variasi yang tercakup, makin baik hasil inferensinya.
  2. Beri nama skemanya dan pilih apakah impor zod dan tipe hasil inferensi ikut disertakan.
  3. Salin kode yang dihasilkan, lalu perketat aturan bidang yang tak bisa ditunjukkan contoh Anda.

Privasi

Alat ini berjalan sepenuhnya di peramban Anda. Masukan Anda tidak pernah diunggah, disimpan, atau dibagikan — menutup tab akan menghapusnya.

Pertanyaan yang sering diajukan

Apakah JSON saya diunggah?
Tidak. JSON diurai dan skema dibuat sepenuhnya di tab peramban; baik masukan maupun keluaran tidak dikirim ke server, dicatat, atau disimpan.
Seberapa akurat validasi hasil inferensinya?
Seakurat contoh Anda. Struktur dan tipe ditangkap dengan setia, tetapi batasan yang tidak diungkapkan struktur — format, rentang, enumerasi, atau bidang mana yang benar-benar wajib di produksi — tidak bisa diketahuinya. Periksa setiap bidang sebelum mengandalkannya.
Apakah larik dan bidang opsional ditangani?
Ya. Larik menjadi z.array(...), dan ketika objek di dalam larik punya kunci yang berbeda, kunci yang tidak ada di semuanya ditandai .optional(). Bidang yang kadang null menjadi .nullable().
Bisakah keluarannya dipakai di TypeScript?
Ya. Berkas yang dihasilkan mengekspor skemanya dan, jika opsinya dibiarkan aktif, sebuah alias tipe `z.infer`, sehingga Anda mendapat validator dan tipe statis yang cocok dari sumber yang sama.