أداة مجانية

منشئ مخطط JSON to Zod / Yup

تحويل أي كائن JSON أو مصفوفة إلى مخطط التحقق من Zod أو Yup فوراً. يتعامل مع الكائنات المتداخلة والمصفوفات والقيم الفارغة وأنواع الاتحاد — كل ذلك في المتصفح الخاص بك، بدون الحاجة إلى التسجيل.

منشئ مخطط JSON → Zod / Yup

ماذا يفعل هذا الأداة؟

تقرأ هذه الأداة كائن JSON أو مصفوفة وتنشئ مخطط التحقق من الوقت التشغيلي المطابق لـ Zod أو Yup. وهي تتعامل مع جميع الأنواع الأساسية (string و number و boolean و null) والكائنات المتداخلة ومصفوفات أي نوع والحقول ذات الاتحاد الفارغ — مما يوفر عليك عناء كتابة المخططات يدويًا لاستجابات API أو حمولات النماذج.

Zod مقابل Yup

Zod هي مكتبة مخطط موجهة لـ TypeScript في المقام الأول تستنتج الأنواع الثابتة من المخطط الخاص بك، مما يجعلها مثالية لمشاريع TypeScript الكاملة. Yup هو الخيار الكلاسيكي للتحقق من صحة نماذج React (خاصة مع Formik)، وتقدم واجهة برمجية قابلة للسلسلة الطلاقة. كلاهما ينتج منطق التحقق من الوقت التشغيلي المكافئ — اختر أيهما يستخدم المشروع الخاص بك بالفعل.

التعامل مع القيم الفارغة

عندما تكون حقول JSON فارغة، لا يمكن للأداة تحديد نوع الوقت التشغيلي الحقيقي. في Zod، تُنشأ الحقول الفارغة كـ z.union([z.TYPENAME(), z.null()]) أو z.null() عندما لا يكون هناك تلميح نوع آخر متاح. في Yup، تصبح الحقول الفارغة yup.mixed().nullable(). فعّل 'الحقول المطلوبة' لـ Yup لإضافة .required() إلى كل حقل.

كيفية الاستخدام

  1. الصق كائن JSON أو مصفوفة في منطقة الإدخال.
  2. اختر إخراج Zod أو Yup باستخدام مفتاح التبديل.
  3. بشكل اختياري، قم بتعيين اسم المتغير وفعّل الوضع الصارم (Zod) أو الحقول المطلوبة (Yup).
  4. انقر فوق إنشاء المخطط لإنتاج رمز المخطط.
  5. انقر فوق نسخ لنسخ النتيجة إلى الحافظة الخاصة بك.

يبقى JSON الخاص بك في المتصفح الخاص بك — لا يتم إرسال أي بيانات إلى أي خادم.

الأسئلة الشائعة

هل يتعامل مع الكائنات المتداخلة؟
نعم. يتم تحويل الكائنات المتداخلة إلى مخططات z.object({...}) أو yup.object({...}) متداخلة مضمنة — بدون الحاجة إلى تصريحات نوع منفصلة.
ماذا يحدث للقيم الفارغة؟
يتم تمثيل القيم الفارغة كـ z.null() في Zod، أو yup.mixed().nullable() في Yup، حيث لا يمكن استنتاج النوع الأساسي الحقيقي من عينة JSON وحدها.
ما هو الوضع الصارم لـ Zod؟
استدعاء .strict() على مخطط كائن Zod يجعله يرمي خطأ التحقق إذا كان الإدخال يحتوي على مفاتيح غير موجودة في المخطط. من المفيد للـ APIs حيث يجب رفض الحقول الإضافية غير المتوقعة.
هل تدعم مصفوفات الكائنات؟
نعم. تنتج مصفوفات الكائنات z.array(z.object({...})) لـ Zod أو yup.array().of(yup.object({...})) لـ Yup، مع استنتاج المخطط المتداخل من العنصر الأول.
هل هذه الأداة مجانية؟
نعم — مجانية تماماً، بدون الحاجة إلى التسجيل. يحدث كل إنشاء مخطط محلياً في المتصفح الخاص بك.