مُحقق JSON Schema
تحقق من بيانات JSON مقابل تعريفات JSON Schema. احصل على تقارير أخطاء مفصلة مع المسارات. جميع العمليات تتم في متصفحك.
بيانات JSON صالحة مقابل المخطط المقدم!
| المسار | الخطأ |
|---|
كيفية استخدام مُحقق JSON Schema
أدخل المخطط
حدد مخطط JSON الذي يصف البنية المتوقعة.
أدخل البيانات
الصق بيانات JSON التي تريد التحقق منها مقابل المخطط.
تحقق
انقر تحقق وراجع النتائج للبحث عن أي أخطاء.
ما هو JSON Schema؟
JSON Schema هو مفردات تسمح لك بالتعليق على مستندات JSON والتحقق منها. يوفر عقداً لبيانات JSON المطلوبة لتطبيق معين وكيفية التفاعل معها. يُستخدم JSON Schema للتحقق والتوثيق وإنشاء بيانات وهمية.
الميزات الرئيسية
تحقق الأنواع
تحقق من الأنواع: نص ورقم وعدد صحيح وقيمة منطقية ومصفوفة وكائن وقيمة فارغة
القيود
الحد الأدنى/الأقصى للطول والنمط والحقول المطلوبة والمزيد
تعريف البنية
حدد كائنات متداخلة ومصفوفات وهياكل بيانات معقدة
الأسئلة الشائعة
تدعم هذه الأداة مسودة JSON Schema-07 ومسودة 2019-09 ومسودة 2020-12 من خلال مكتبة Ajv. معظم ميزات المخطط الشائعة مدعومة.
نعم! يدعم JSON Schema الكائنات والمصفوفات المتداخلة بعمق. يمكنك تعريف الخصائص والعناصر في أي مستوى من التداخل، مع قواعد تحقق فردية لكل حقل.
تتحقق الأداة أولاً من أن مخططك نفسه هو مخطط JSON صالح. إذا كان المخطط يحتوي على أخطاء، سيتم الإبلاغ عنها قبل محاولة التحقق من البيانات.
type (string, number, object, array, boolean, null)، وproperties مع مخططات متداخلة، وrequired لسرد المفاتيح الإلزامية، وenum لمجموعات القيم الثابتة، وpattern للسلاسل النصية المقيّدة بتعبيرات نمطية (regex)، وفحوصات النطاق minimum/maximum وminLength/maxLength. أما additionalProperties: false فيقيّد الكائنات ضد المفاتيح الإضافية. مجتمعةً، تغطي هذه الكلمات الجزء الأكبر من قواعد التحقق في واجهات API.
في JSON Schema الحديثة، تُعد format شرحاً (annotation) افتراضياً وليس تأكيداً تلقائياً (assertion) - لا يفرضها المحققون إلا عند تهيئتهم لذلك، وهو ما أوضحته مواصفة 2020-12 بمفردات format-assertion منفصلة. استخدم pattern أو كلمة مفتاحية مخصصة عندما يجب ضمان الإنفاذ، وعامل format كبيانات وصفية للتوافقية في غير ذلك.
تشير $ref إلى #/$defs/address فتعود إلى جزء من المخطط ضمن $defs ويجري التحقق مقابله أينما استُخدم - وهي آلية إزالة التكرار. أعادت مسودة 2020-12 تسمية definitions القديمة إلى $defs، وأضفت صياغة رسمية لـ $dynamicRef للبنى التكرارية مثل أشجار التعليقات. يمكن للمراجع أيضاً أن تشير إلى مستندات خارجية، إلا أن تجميعها محلياً (bundling) أكثر شيوعاً.
يتطلب allOf نجاح التحقق من كل مخطط فرعي - وهو تقاطع، يُستخدم لدمج مخطط أساسي مع قيود إضافية. ويتطلب anyOf مخططاً فرعياً واحداً على الأقل - وهو اتحاد، يُستخدم للحمولات متعددة الأشكال (polymorphic). أما oneOf فيتطلب مخططاً فرعياً واحداً بالضبط؛ يفشل التحقق إذا تطابق مخططان فرعيان أو لم يتطابق أي منها، وهو أمر أكثر صرامة مما يتوقع الناس، وهو السبب المعتاد للأخطاء المفاجئة مع المخططات المتداخلة.
قسّمت 2020-12 المواصفة إلى مفردات قابلة للتفاوض عليها بشكل منفصل (validation، annotation، format-assertion)، وأعادت تسمية definitions إلى $defs، وبسّطت exclusiveMinimum لتكون رقماً مباشراً، واستبدلت الكلمة المفتاحية items القديمة بـ prefixItems إلى جانب items. تدعم معظم الأدوات كليهما؛ لا تزال draft-07 الأوسع انتشاراً، لكن 2020-12 هي المعيار المنشور الحالي.
الأدوات ذات الصلة
المراجع المعتمدة
المصادر الأساسية وراء هذه الأداة - معايير ومواصفات رسمية، وليست ملخصات منقولة عن الغير.