مطور / الأنواع

محوّل JSON إلى مخطط Zod

أنشئ مخطط Zod ونوع TypeScript الخاص به من عينة JSON، مع دعم الكائنات المتداخلة، والمصفوفات، والحقول الاختيارية والقابلة للقيمة الفارغة، والأعداد الصحيحة.

محوّل JSON إلى مخطط Zod: يتحوّل كل كائن في العينة إلى مخطط z.object، ويُصدَّر معه نوع مستنتج منه، كما تحصل الكائنات المتداخلة على مخططاتها المسماة الخاصة. تُدمج الكائنات الموجودة في المصفوفة: تحصل المفاتيح المفقودة من بعض الكائنات على .optional()، والمفاتيح التي تكون قيمتها فارغة أحيانًا على .nullable()، بينما تحصل الأعداد الصحيحة على .int(). وقد تم التحقق من المخططات المُنشأة من خلال تحليل عيناتها نفسها باستخدام Zod. يعمل 100% محليًا في المتصفح، من دون رفع أي ملفات إلى الخادم.

مرات التشغيل
في المتصفح
التكلفة
مجاني · بلا تسجيل
التوفر
جاهز للاستخدام
تحويل JSON إلى Zodمعالجة محلية

تعمل بالكامل في المتصفح

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);

يحصل كل كائن على مخطط ونوع مستنتج. تُضاف .optional() إلى المفاتيح الغائبة عن بعض الكائنات، وتُضاف .nullable() إلى المفاتيح التي تكون null أحيانًا، وتُضاف .int() إلى الأعداد الصحيحة؛ خفّف أي قاعدة لا تضمنها واجهة API الخاصة بك.

استخدام المخطط

استدعِ Schema.parse(data) للتحقق من البيانات وإطلاق خطأ عند وجود بيانات غير صالحة، أو Schema.safeParse(data) للحصول على نتيجة يمكنك التحقق منها دون استخدام try وcatch. ويظل النوع المُصدَّر من z.infer متوافقًا مع المخطط أثناء تحريره.

إذا كنت تحتاج إلى أنواع وقت الترجمة فقط، فإن JSON إلى TypeScript يمنحك واجهات عادية؛ وللتحقق من البيانات مقابل JSON Schema موجود، استخدم مدقّق JSON Schema.

تشديد القواعد المُنشأة

تعرض العينة ما تحتويه فقط، لذا تعامل مع المخطط كنقطة بداية: أضف .email() أو .url() أو .datetime() إلى السلاسل حيثما ينطبق ذلك، واستخدم z.enum([...]) للحقول ذات القيم المحددة، و.min() أو .max() عندما تفرض بياناتك حدودًا.

طريقة الاستخدام

  1. ألصق عينة JSON، ويفضّل أن تكون مصفوفة تضم عدة سجلات نموذجية.
  2. سمِّ النوع الأعلى مستوى.
  3. انسخ المخططات واستخدمها للتحقق من صحة البيانات أثناء التشغيل.

الخصوصية والقيود

تُحوَّل JSON في المتصفح ولا تُرفع إلى أي خادم.

أدوات ذات صلة

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

لماذا أستخدم Zod بدلًا من واجهة TypeScript؟

تختفي الواجهة عند تجميع التعليمات البرمجية، لذلك لا يمكنها التحقق من البيانات أثناء التشغيل؛ أما مخطط Zod فيتحقق من البيانات ويمنحك النوع نفسه باستخدام z.infer.

هل ينبغي فعلًا استخدام .int() للأعداد الصحيحة؟

فقط إذا كانت واجهة API تضمن أعدادًا صحيحة. إذا كان السعر أو النتيجة قد يتضمن كسرًا، فأزل .int() حتى عندما تحتوي العينة على أعداد صحيحة فقط.

هل يتعامل مع سلاسل نصية مثل التواريخ أو عناوين البريد الإلكتروني؟

تُصنَّف هذه السلاسل على أنها z.string()؛ أضف قيودًا مثل .email() أو .url()، أو أضف تحققًا من التاريخ حيث تتطلب بياناتك ذلك.

أداة مجانية · عدد مرات الاستخدام في المتصفح · لا يتطلب حسابًا