İçeriğe geç

JSON'dan Zod Şemasına Dönüştürücü

json-to-zod kütüphanesiyle JSON örneğinden Zod şeması üretir. Her değer z.string(), z.number(), z.boolean(), z.null() veya iç içe z.object() olur; boş diziler z.array(z.unknown()) olur.

Yalnızca örneğine sahip olduğunuz bir API yanıtı için çalışma zamanı doğrulayıcısı taslağı hazırlamak.

JSON

Zod Schema

Ne zaman kullanılır?

  • Yalnızca örneğine sahip olduğunuz bir API yanıtı için çalışma zamanı doğrulayıcısı taslağı hazırlamak.
  • Şemayı elle yazmadan forma veya yapılandırma yükleyicisine Zod doğrulaması eklemek.

Nasıl kullanılır?

  1. Temsili bir JSON örneğini soldaki düzenleyiciye yapıştırın.
  2. schema dışında bir ad istiyorsanız ayarları açıp Kök şema adı alanını değiştirin.
  3. Kodu kopyalayın ve kuralları sıkılaştırın: gerçek belirtiminize göre .optional(), .email(), .min() gibi kurallar ekleyin.

JSON örneği

{
  "id": 42,
  "email": "ada@example.com",
  "roles": ["admin", "editor"],
  "profile": { "nickname": null, "verified": true },
  "tags": []
}

Zod şeması (TypeScript)

import { z } from "zod"

export const schema = z.object({
  id: z.number(),
  email: z.string(),
  roles: z.array(z.string()),
  profile: z.object({ nickname: z.null(), verified: z.boolean() }),
  tags: z.array(z.unknown()),
})

Ayrıntılar ve sınırlamalar

Üretim tarayıcıda yapılır; kütüphane gerektiğinde yüklenir.

Türler tek bir örnekten çıkarılır. null yalnızca z.null() olur, .nullable() olmaz; eksik anahtarlar hiçbir zaman isteğe bağlı işaretlenmez.

Farklı öğe yapıları içeren diziler her yapıyı kapsayan z.union([...]) olur; elle birleştirme gerekebilir.

E-posta, tarih veya UUID gibi biçimler algılanmaz; hepsi z.string() olur.

FAQ

Kökteki bir JSON dizisini dönüştürebilir miyim?

Evet. Kök dizi z.array(...) olur. Nesneler farklı anahtarlar içeriyorsa her farklı nesne bir z.union üyesi olur.

null değerlerin türü nasıl belirlenir?

Yalnızca null kabul eden z.null() olur. Alan dize de alabiliyorsa z.string().nullable() olarak değiştirin.

Eksik alanlar için .optional() ekler mi?

Hayır. Örnekteki her anahtar zorunludur. İsteğe bağlı alanları kendiniz işaretleyin.

Teknik özellikler ve kaynaklar