محوّل JSON إلى مخطط Zod
الصق JSON واحصل على مخطط Zod جاهز للاستخدام فوراً، 100% في متصفّحك. أنواع z.number().int() و.optional() و.nullable() صحيحة، مع نوع z.infer. مجاني.
الخيارات
بُنيت وروجعت بواسطة مطوّرين يشحنون TypeScript وZod في الإنتاج.
ما هو مخطط Zod؟
مخطط Zod هو وصف لشكل القيمة يضع TypeScript أولاً، يتحقّق من البيانات في وقت التشغيل ويستنتج نوعاً ساكناً في وقت التصريف. وتوليده من عيّنة JSON يعني أنك لا تكتب يدوياً كوداً نمطياً للتحقّق لاستجابات API أو النماذج أو ملفات الإعداد. يستنتج مولّد مخطط Zod هذا الأنواع الصحيحة، ويعلّم المفاتيح الغائبة بـ.optional()، والقيم null بـ.nullable()، ويمنحك نوع z.infer — كل ذلك 100% في متصفّحك.
أمثلة
استجابة 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>;
تتحوّل حمولة REST نموذجية إلى مخطط Zod جاهز للاستخدام. تُستنتج الأعداد الصحيحة z.number().int()، وتصبح مصفوفة roles على هيئة z.array(z.string()). ويأتي نوع z.infer مجاناً.
كائن متداخل
{"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>;
تصبح الكائنات المتداخلة مخططاً مسمّى خاصاً بها (OwnerSchema) يُشار إليه حسب الحقل. وتُصرَّح المخططات الفرعية قبل الأب الذي يستخدمها، وتُصرَّح الأشكال المتطابقة مرة واحدة ويُعاد استخدامها.
مصفوفة من الكائنات (حقل اختياري)
{"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>;
تُدمج مصفوفات الكائنات في مخطط عنصر واحد. المفتاح الغائب من بعض العناصر يصبح .optional()، فيبقى التحليل ناجحاً عند غيابه.
حقل قابل للإبطال وتوحيد الأرقام
{"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>;
الحقل الذي يكون null في بعض العيّنات ومكتوب النوع في غيرها يصبح .nullable(). ولأن 0.1 يحتوي على فاصلة عشرية، يتوحّد الرقم إلى z.number() بدلاً من z.number().int().
كيفية تحويل JSON إلى Zod
- 1
الصق بيانات JSON
أدرِج كائن JSON أو مصفوفة أو استجابة API في صندوق الإدخال. يبدأ التحويل فوراً.
- 2
اضبط الإخراج
أعد تسمية المخطط الجذري وبدّل سطر الاستيراد، أو نوع z.infer، أو كلمة export المفتاحية لتطابق نمط مشروعك.
- 3
انسخ أو حمّل
خذ مخطط Zod المُولَّد بنقرة واحدة والصقه مباشرة في طبقة التحقّق لديك.
Common Use Cases
- التحقّق من استجابات API
- حوّل عيّنة استجابة REST أو GraphQL إلى مخطط Zod وحلّلها عند حدّ الجلب، فتفشل البيانات المشوّهة بسرعة برسالة خطأ واضحة بدلاً من التسرّب عبر تطبيقك.
- نماذج ومدخلات مكتوبة الأنواع
- ولّد مخططاً لمدخلات النموذج أو الاستعلام وأعد استخدام نوع z.infer عبر واجهتك ومعالِجاتك لأمان الأنواع من طرف إلى طرف.
- مخططات tRPC وأدوات الذكاء الاصطناعي
- جهّز مخططات الإدخال والإخراج لإجراءات tRPC أو أدوات المخرجات المنظَّمة للذكاء الاصطناعي من حمولة مثال بدلاً من كتابتها يدوياً.
كيف يعمل التحويل
- الاستنتاج البنيوي
- يصبح كل كائن مخططاً مسمّى؛ وتُصرَّح الأشكال المتطابقة مرة واحدة ويُعاد استخدامها. تُدمج مصفوفات الكائنات مفتاحاً بمفتاح، والمفاتيح الغائبة من بعض العناصر تصبح .optional().
- تعيين الأنواع الصحيح
- تُعيَّن الأعداد الصحيحة إلى z.number().int() والعشرية إلى z.number(). وتُعيَّن السلاسل والقيم المنطقية والفارغة إلى z.string() وz.boolean() وz.null()؛ وتصبح مصفوفة الأوّليات المختلطة z.union().
- أنواع TypeScript مضمّنة
- يُصدَر اسم مستعار للنوع z.infer للمخطط الجذري، فيبقى المخطط مصدر الحقيقة الوحيد ولا تنحرف أنواعك عن تحقّقك أبداً.
- 100% على جانب المتصفح
- يجري التحليل والتوليد في متصفّحك دون أي طلبات شبكة، فتبقى بياناتك خاصة.
نصائح لمخططات Zod نظيفة
- سمِّ مخططك الجذري
- عيّن اسماً جذرياً ذا معنى مثل User أو ApiResponse بدلاً من الافتراضي Root لكود مقروء وموثّق ذاتياً.
- نقّح z.unknown() والاتحادات
- تنتج المصفوفات الفارغة أو المختلطة z.unknown() أو z.union() واسعاً. الصق عيّنة أغنى وتمثيلية كي تستنتج الأداة أنواعاً دقيقة، ثم شدّد أي شيء يبقى غامضاً.
- تحقّق عند الحدود
- استدعِ safeParse() حيث تدخل البيانات غير الموثوقة — استجابات API ومدخلات النماذج وwebhooks — كي تُلتقط البيانات السيّئة قبل أن تصل إلى منطق تطبيقك.
الأسئلة الشائعة
كيف أحوّل JSON إلى مخطط Zod؟
ما الفرق بين JSON إلى Zod وJSON Schema إلى Zod؟
كيف أحصل على نوع TypeScript من المخطط؟
كيف تُعالَج الحقول الاختيارية والفارغة؟
أي نوع رقمي يولّد؟
هل يعمل الإخراج مع Zod 3 وZod 4؟
كيف أتحقّق من البيانات بالمخطط المُولَّد؟
كيف تُعالَج المصفوفات والأنواع المختلطة؟
هل بيانات JSON الخاصة بي خاصة وآمنة؟
هل الأداة مجانية؟ وهل أحتاج إلى حساب؟
أدوات ذات صلة
عرض جميع الأدوات →جدول ASCII ومحوّل الشيفرات
الترميز والتنسيق
جدول ASCII الكامل: 128 حرفًا بالأنظمة العشري والست عشري والثماني والثنائي، مع محوّل ثنائي الاتجاه بين النص وشيفرات ASCII. أحرف التحكم مرفقة بتسلسلات الهروب وتدوين ^ وأين تصادفها فعليًا.
مولّد باركود مجاني — EAN-13 وUPC-A
الترميز والتنسيق
أنشئ باركود EAN-13 وUPC-A وCode 128 وCode 39 و11 نوعاً آخر بصيغة SVG أو PNG جاهزة للطباعة. اكتب 12 خانة فتُحسب خانة التحقق تلقائياً، وإن أخطأت في الأخيرة قلنا لك ما يجب أن تكون.
محوّل Base64 — ترميز وفك ترميز أونلاين
الترميز والتنسيق
رمّز وفك ترميز Base64 مجاناً أونلاين — محوّل فوري مع دعم UTF-8 والرموز التعبيرية. خصوصية 100% — يعمل في متصفّحك. جرّبه الآن.
محوّل Base64 إلى صورة أونلاين
الترميز والتنسيق
فك ترميز سلسلة Base64 أو عنوان URI للبيانات إلى صورة داخل متصفّحك. عاين واقرأ الأبعاد ونوع MIME ثم نزّل كـ PNG أو JPG أو GIF أو SVG. بلا رفع.
تحويل Base64 إلى PDF وملفات والعكس
الترميز والتنسيق
تحويل Base64 إلى PDF أونلاين: الصق Base64 خاماً أو data URI أو استجابة JSON كاملة. تكتشف الأداة نوع الملف الحقيقي وتعاينه وتنزّله، وتنبّهك إلى ملفات PDF المقطوعة. وتحوّل PDF إلى Base64 أيضاً. لا يُرفع أي شيء.
محوّل CSV إلى JSON
الترميز والتنسيق
حوّل CSV إلى JSON في متصفحك. RFC 4180، استنتاج الأنواع، صف العنوان، أمان الأعداد الكبيرة. خصوصية 100%.