مولّد مخطط JSON

الصق JSON على اليسار — والمخطط يظهر على اليمين أثناء الكتابة.

مخطط JSON

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

  1. الصق مستند JSON عيّنة على اليسار — كائنًا أو مصفوفة أو قيمة واحدة. يُولَّد المخطط حيًّا أثناء الكتابة.
  2. اختر إصدار المخطط (المسودة 7 أو 2020-12)، وبدّل كشف صيغ السلاسل وقيم المثال وما إذا كانت كل خاصية مطلوبة.
  3. انسخ النتيجة أو نزّلها كـ schema.json. لا شيء يُرفع: تُحلَّل الوثيقة بالكامل في متصفحك.

مثال

عيّنة JSON

{
  "id": 42,
  "name": "Ada Lovelace",
  "email": "ada@example.com",
  "active": true,
  "tags": ["admin", "editor"],
  "profile": { "score": 4.5, "verified": false }
}

مخطط JSON

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "id": { "type": "integer" },
    "name": { "type": "string" },
    "email": { "type": "string", "format": "email" },
    "active": { "type": "boolean" },
    "tags": { "type": "array", "items": { "type": "string" } },
    "profile": {
      "type": "object",
      "properties": {
        "score": { "type": "number" },
        "verified": { "type": "boolean" }
      },
      "required": ["score", "verified"],
      "additionalProperties": false
    }
  },
  "required": ["id", "name", "email", "active", "tags", "profile"],
  "additionalProperties": false
}

وُلِّد بالقواعد الافتراضية: المسودة 7، مع كشف الصيغ، وكل الخصائص مطلوبة. حصلت سلسلة البريد على تلميح format؛ والعدد الصحيح بقي كما هو، وأصبح profile المتداخل مخطط كائن مستقلاً.

القواعد والحدود والمشكلات المعروفة

  • تُستنتج الأنواع من العيّنة: object وarray وstring وinteger وnumber وboolean وnull. تُدمج عناصر المصفوفة — تتّحد مفاتيح الكائنات عبر العناصر، ولا تُعلَم خاصية مطلوبة إلا إن وُجدت في كل العناصر.
  • الأنواع المختلطة داخل مصفوفة واحدة تصبح anyOf؛ والمصفوفة الفارغة تعطي type:array بلا items (النوع غير معروف من العيّنة).
  • صيغ السلاسل (البريد وUUID وURI والتاريخ وdate-time) تُخمَّن من القيمة — مجرد تلميحات لا تحقّق كل القيم الممكنة. عطّلها من الزر.
  • المفاتيح المكررة تُبقي الأخيرة فقط، كـ JSON.parse. JSON صارم فقط (RFC 8259): التعليقات والفواصل اللاحقة والاقتباس المفرد تُرفض مع رسالة بالسطر والعمود.
  • المخطط JSON قياسي، لذا لا تتغير كلماته ومخرجاته مع لغة الصفحة. تُعاد قيم المثال كما هي، لذا قد يُقَرَّب عدد صحيح ضخم (مثل 12345678901234567890) في المثال فقط.
  • الحدود: مليون حرف و512 مستوى تداخل. تتجاوز أيًا منهما فتظهر رسالة خطأ دون اقتطاع. رفع الملف يقرأ الملف المحلي فقط — لا شيء يُرفع.

ما يحتاجه الناس عادةً بعد الحصول على المخطط.