مولد JSON Schema
قم بإنشاء JSON Schema (Draft-07) تلقائيًا من أي عينة JSON. الصق JSON الخاص بك واحصل على مخطط صالح فورًا — دون تسجيل.
المسافة البادئة:
إدخال JSON
المخطط المولد
سيظهر JSON Schema هنا
أدوات ذات صلة
حول مولد JSON Schema
كيف يعمل
- الصق أو اكتب أي JSON صالح في اللوحة اليسرى
- تقوم الأداة بتحليل كل مفتاح وقيمة بشكل متكرر
- يتم استنتاج الأنواع: string وnumber وinteger وboolean وobject وarray وnull
- تُدرج جميع المفاتيح الموجودة في مصفوفة "required"
- يظهر مخطط Draft-07 الناتج على اليمين
حالات الاستخدام الشائعة
- تمهيد وثائق API ومخططات OpenAPI
- التحقق من صحة حمولات JSON في خدمات الواجهة الخلفية
- توليد أنواع TypeScript عبر أدوات مثل json-schema-to-typescript
- إنشاء عقود بيانات صارمة بين الخدمات المصغرة
- توثيق تنسيقات ملفات التكوين
الأسئلة الشائعة
ما هو JSON Schema؟
JSON Schema هو مفردات تتيح لك تعليق مستندات JSON والتحقق من صحتها. يصف بنية بيانات JSON وأنواعها وقيودها، مما يسهل التحقق من المدخلات وتوليد الوثائق ومشاركة عقود البيانات بين الخدمات.
ما إصدار JSON Schema Draft الذي تولده هذه الأداة؟
تولد هذه الأداة JSON Schema Draft-07، وهو الإصدار الأكثر دعمًا على نطاق واسع. Draft-07 متوافق مع غالبية أدوات التحقق والمحررات وأدوات API المستخدمة اليوم، بما في ذلك VS Code وPostman وOpenAPI 3.x.
كيف يعمل استنتاج المخطط؟
تفحص الأداة كل قيمة في JSON بشكل متكرر. لكل مفتاح، تحدد نوع JSON (string أو number أو integer أو boolean أو array أو object أو null)، وتجمع جميع المفاتيح الفريدة في الكائنات وتضعها كمطلوبة. لا يتم إرسال أي بيانات إلى خادم.
هل يتم وضع علامة على جميع المفاتيح كمطلوبة؟
بشكل افتراضي، يتم إضافة كل مفتاح موجود في JSON العينة إلى مصفوفة "required". إذا كانت بياناتك الفعلية قد تحتوي على حقول اختيارية، فما عليك سوى إزالة تلك المفاتيح من مصفوفة required في المخطط المولد.
ماذا يحدث مع القيم الخالية؟
عندما تكون القيمة null في JSON العينة، تولد الأداة نوعًا "null". إذا كان الحقل يمكنه استيعاب أنواع أخرى أيضًا، فيجب تغيير النوع يدويًا إلى مصفوفة مثل ["string", "null"].
هل يمكنني توليد مخطط من مصفوفة JSON على مستوى الجذر؟
نعم. إذا كان JSON الخاص بك مصفوفة ذات مستوى أعلى، فسيكون للمخطط المولد نوع "array" مع مخطط فرعي "items" مستنتج من العنصر الأول.
هل يتم إرسال بيانات JSON الخاصة بي إلى خادم؟
لا. تتم جميع المعالجات كليًا في متصفحك باستخدام JavaScript من جانب العميل. لا يتم إرسال JSON الخاص بك إلى خوادمنا، لذا تظل البيانات الحساسة خاصة.
هل يمكنني استخدام المخطط المولد في مواصفات OpenAPI / Swagger؟
نعم. يستخدم OpenAPI 3.x مجموعة شاملة من JSON Schema Draft-07، لذا يمكن لصق ناتج هذه الأداة مباشرة في قسم "schema" لمكون OpenAPI مع تعديلات طفيفة.
ماذا لو كان JSON يحتوي على كائنات متداخلة بعمق؟
تدعم الأداة بنى JSON المتداخلة بشكل تعسفي بالكامل. يحصل كل كائن متداخل على كتلة "properties" الخاصة به مع تعليقات النوع الصحيحة.
ما الفرق بين "number" و"integer" في JSON Schema؟
يميز JSON Schema بين "integer" (الأعداد الصحيحة مثل 1 و42 و-7) و"number" (أي قيمة عددية تشمل الكسور العشرية مثل 3.14). تستخدم الأداة تلقائيًا "integer" عندما لا يكون للقيمة جزء كسري.
هل يمكنني تخصيص المخطط بعد توليده؟
بالتأكيد. الناتج نص قابل للتحرير. التخصيصات الشائعة تشمل إضافة حقول "description" وتشديد قيود النص بـ "minLength"/"maxLength" أو "pattern" وإضافة مصفوفات "enum" وتعديل قائمة "required".
ماذا يفعل خيار "additionalProperties: false"؟
عند التمكين، يتم إضافة "additionalProperties: false" إلى كل كائن في المخطط. يخبر هذا أدوات التحقق برفض أي مفتاح غير مدرج صراحةً في "properties". مفيد لعقود API الصارمة.