طريقة الاستخدام
- الصق نموذج JSON، أو انقر «تحميل مثال».
- اضبط عنوان المخطط الجذري.
- انسخ المخطط أو نزّله، ثم أضف قيودًا مثل الصيغ والأنماط والنطاقات.
شرح الخيارات
- اسم النوع الجذري
- يُستخدم كعنوان المخطط.
أمثلة
يتحول {"id": 1, "email": null} إلى مخطط فيه "id": {"type": "integer"} و"email": {"type": "null"} والمفتاحان كلاهما في required.
مثال
سجلا مستخدمين، ليس لدى الأول فقط بريد إلكتروني، وقيمة manager تكون أحيانًا null:
[
{ "id": 1, "name": "Ada", "email": "ada@example.com", "tags": ["admin"], "manager": null },
{ "id": 2, "name": "Grace", "tags": [], "manager": { "id": 1 } }
]
مع ضبط اسم النوع الجذري على User، يكون المخطط المُولَّد:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "User",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": { "type": "integer" },
"name": { "type": "string" },
"email": { "type": "string" },
"tags": { "type": "array", "items": { "type": "string" } },
"manager": {
"anyOf": [
{ "type": "null" },
{ "type": "object", "properties": { "id": { "type": "integer" } }, "required": ["id"] }
]
}
},
"required": ["id", "name", "tags", "manager"]
}
}
يُترك email خارج required لأن السجل الثاني لا يحتويه، ويقبل manager إما null أو كائنًا لأن كليهما يظهر في العيّنة. وكلما كانت بيانات العيّنة أكثر تنوعًا كان المخطط أدق — فالصق عدة سجلات بدلًا من سجل واحد.
استخدامات شائعة
التحقق من مدخلات API. حمّل المخطط في مدقِّق مثل Ajv (JavaScript) أو jsonschema (Python) وارفض الطلبات التي لا تطابقه.
توثيق API. الصق الخصائص في قسم components.schemas من OpenAPI نقطة بداية.
الإكمال التلقائي في المحرر. يمكن لـ VS Code وبيئات JetBrains استخدام JSON Schema لاقتراح المفاتيح وتنبيه الأخطاء في ملفات إعدادات JSON.
الأسئلة الشائعة
أي المفاتيح تُوسَم كمطلوبة؟
المفاتيح الموجودة في كل كائن نموذجي. عندما تحتوي مصفوفة على كائنات بمفاتيح مختلفة، تُترَك المفاتيح المفقودة من بعض العناصر خارج required.
هل يمكنني استخدامه مع OpenAPI؟
يستخدم OpenAPI 3.1 معيار JSON Schema 2020-12، لذا يناسب المخطط المُولَّد components/schemas. لـOpenAPI 3.0، استبدل مصفوفات النوع مثل ["string", "null"] بـ nullable true.
هل يكتشف صيغًا مثل email أو date-time؟
لا. يستنتج الأنواع فقط. أضف format وpattern وminimum وكلمات مفتاحية مشابهة يدويًا حيث يلزم.
هل يُرفع JSON الخاص بي؟
لا. تُولَّد الأنواع في متصفحك، لذا تبقى استجابات API ببيانات حقيقية على جهازك.
الخصوصية
تعمل هذه الأداة بالكامل داخل متصفحك. تُعالَج ملفاتك ونصوصك على جهازك ولا تُرفع أبدًا إلى خوادمنا.