تحقق من JSON مقابل JSON Schema (2020-12 و2019-09 وdraft 7) مع تحديد موضع كل خطأ
يعمل في متصفحك. لا يُرسل أي شيء تكتبه إلى أي مكان. تم التحقق في 16 أكتوبر 2026.يتحقق مدقق JSON Schema من أن مستند JSON له الشكل الذي يصفه المخطط: الأنواع الصحيحة، والخصائص المطلوبة، وقيم ضمن الحدود، وعدم وجود مفاتيح غير متوقعة. يدعم هذا المدقق الإصدارات 2020-12 و2019-09 و7 و6 و4، ويجتاز 1,652 حالة من مجموعة الاختبارات الرسمية، ويشير إلى كل قيمة خاطئة بمسارها ورقم سطرها.
تُرجمت هذه الصفحة آليًا من الأصل الإنجليزي. لم يراجع أي شخص هذه الترجمة بعد، لذا فالنسخة الإنجليزية هي التي يُعتمد عليها. اقرأ الأصل الإنجليزي
الصق المخطط في لوحة المخطط وJSON في لوحة البيانات، أو انقر على جرّب مثالًا.
اقرأ النتيجة: صالح، أو قائمة أخطاء، لكل خطأ مسار القيمة وما الخطأ فيها.
انقر على خطأ لوضع المؤشر على تلك القيمة في لوحة البيانات، ثم صحّحها، فتتحدث القائمة أثناء الكتابة.
فعّل التحقق من الصيغ لاختبار البريد الإلكتروني والتاريخ والوقت وURI وسائر الصيغ الشائعة أيضًا.
JSON Schema هو الطريقة المعيارية لوصف شكل JSON الصالح، ويستخدمه OpenAPI وأدوات بناء النماذج وملفات الإعداد ومسارات معالجة البيانات. الصق مخططًا ومستندًا، فتتحدث النتيجة أثناء الكتابة.
ما الذي يُفحص. كل تأكيد في مفردات التحقق: type وenum وconst وحدود الأرقام وmultipleOf وطول النص وpattern وطول المصفوفة وuniqueItems وcontains وحجم الكائن وrequired وdependentRequired، إضافة إلى المطبِّقات properties وpatternProperties وadditionalProperties وitems وprefixItems وallOf وanyOf وoneOf وnot وif/then/else. وتتبع المراجع $ref مؤشرات JSON و$defs وdefinitions و$id و$anchor داخل المخطط.
أي إصدار. يُؤخذ الإصدار من $schema، أو يكون 2020-12 إذا لم يحدد المخطط أي إصدار، ويمكنك تغييره يدويًا. والفروق مهمة: في draft 7 يفحص items مع مصفوفة كل موضع على حدة وتُتجاهل الكلمات المفتاحية المجاورة لـ$ref؛ أما في 2020-12 فتنتقل المواضع إلى prefixItems ويُدمج $ref مع الكلمات المجاورة له.
الصيغ. منذ 2019-09 أصبح format تعليقًا توضيحيًا لا فحصًا. فعّل التحقق من الصيغ لاختبار email وdate-time وdate وtime وuri وuuid وipv4 وipv6 وhostname مع ذلك، كما يتوقع معظم الناس.
أخطاء يمكنك التعامل معها. يذكر كل خطأ مسار القيمة الخاطئة، مثل /tags/1، ورقم سطرها في لوحة البيانات، والقاعدة التي خالفتها. انقر عليه فينتقل المؤشر إلى تلك القيمة.
ما لا يفعله. لا تُقيَّم unevaluatedProperties وunevaluatedItems و$dynamicRef، ولا يُجلب $ref يشير إلى مخطط على خادم آخر. وتنبّه الصفحة إلى ذلك كلما استخدم المخطط أحدها، بدلًا من تمرير البيانات بصمت.
إنشاء مخطط. الصق عينة بدلًا من ذلك، فيُكتب منها مخطط أولي جاهز للتشديد.
يُختبر المدقق مقابل مجموعة JSON-Schema-Test-Suite الرسمية. كل شيء يعمل في متصفحك، ولا يُرسَل أي شيء تلصقه إلى أي مكان.
الصق المخطط في لوحة المخطط ومستند JSON في لوحة البيانات. تظهر النتيجة فورًا: صالح، أو قائمة أخطاء يذكر كل منها مسار القيمة الخاطئة، مثل /items/2/price، والقاعدة التي خالفتها، مثل minimum 0. صحّح البيانات أو المخطط فتتحدث القائمة أثناء الكتابة.
استخدم 2020-12 للمخططات الجديدة: فهو المواصفة الحالية وهو ما يستخدمه OpenAPI 3.1. ولا يزال draft 7 شائعًا في الأدوات والمكتبات الأقدم. صرّح بالإصدار في $schema، مثل https://json-schema.org/draft/2020-12/schema، لأن صفوف المصفوفات و$ref وdependencies تتصرف بشكل مختلف بين الإصدارات.
عند ضبط additionalProperties على false تصبح أي خاصية غير مدرجة في properties ولا تطابق patternProperties خطأً. وبذلك يُكتشف خطأ إملائي مثل emial بدلًا من email بدلًا من تجاهله. أما الخصائص المضافة عبر allOf في مخطط فرعي آخر فلا تُرى، وهذه مفاجأة شائعة؛ أدرجها في المخطط نفسه.
منذ 2019-09 أصبحت الكلمة المفتاحية format افتراضيًا مجرد تعليق توضيحي، لذا لا تُلزم المدققات بفحصها. فعّل هنا التحقق من الصيغ لاختبار email وdate-time وdate وtime وuri وuuid وipv4 وipv6 وhostname. وفي الشيفرة، تحتاج مكتبات مثل Ajv أيضًا إلى تفعيل فحص الصيغ بشكل منفصل.
يسمي required الخصائص المحددة التي يجب أن تكون موجودة، مثل id وemail، بينما يكتفي minProperties بعدّها: فـminProperties 2 يقبل أي مفتاحين. والخاصية المدرجة في properties وغير المدرجة في required اختيارية، وإذا وُجدت فيجب أن تطابق مخططها الخاص مع ذلك.
نعم. انتقل إلى إنشاء مخطط والصق عينة في لوحة البيانات: يُكتب مخطط 2020-12 يحدد نوع كل خاصية ويضع علامة required على المفاتيح الموجودة في كل السجلات. لا تستطيع العينة إظهار الحدود أو الصيغ أو القيم المسموح بها، لذا أضف minimum وformat وenum يدويًا قبل الاعتماد عليه.
تتغير المعدلات والقواعد؛ راجع المصدر قبل الاعتماد على أي رقم.
هل ما زلت عالقًا؟ اسأل عن مدقق JSON Schema ويمكن لأي شخص يعرف الإجابة أن يجيب. لا حاجة إلى حساب.