JSON للمطورين: من الأساسيات إلى الحيل المتقدمة
JSON للمطورين: من الأساسيات إلى الحيل المتقدمة
JSON أصبح لغة تبادل البيانات القياسية للويب كله — من APIs إلى ملفات الإعدادات إلى قواعد البيانات الوثائقية.
البنية الأساسية في 60 ثانية
json
{
"name": "أحمد",
"age": 30,
"active": true,
"tags": ["dev", "admin"],
"address": { "city": "الرياض", "zip": "12345" }
}
القواعد الذهبية:
- المفاتيح بين علامتي اقتباس مزدوجة دائماً
- القيم المسموحة: نص، رقم، boolean، null، مصفوفة، كائن
- لا فواصل زائدة — آخر عنصر لا يتبعه فاصلة
- لا تعليقات — JSON الصارم لا يدعم // أو /* */
الأخطاء الشائعة التي تكسر الـ JSON
| الخطأ | مثال خاطئ | الصحيح |
|---|---|---|
| اقتباس مفرد | {'a': 1} | {"a": 1} |
| فاصلة زائدة | {"a":1,} | {"a":1} |
| مفتاح بلا اقتباس | {a: 1} | {"a": 1} |
| NaN/undefined | {"x": NaN} | {"x": null} |
Format vs Validate vs Minify
- Validate: هل البنية صحيحة أصلاً؟ أول خطوة دائماً
- Format: مسافات بادئة للقراءة — للعمل ومراجعة Git
- Minify: إزالة المسافات — للإنتاج ونقل الشبكة (وفّر 30-40% عادة)
حيل تعرفها تجعلك أسرع
JSON.stringify(obj, null, 2)— تنسيق بخطوتين بادئتينJSON.parse(text, reviver)— تحويل القيم أثناء التحليل (تواريخ مثلاً)[...new Set(arr)]— حذف المكررات من مصفوفة بسطر واحدstructuredClone(obj)— نسخة عميقة أسرع من JSON round-trip
JSON Schema — عندما تكبر المشاريع
للتحقق من بيانات API عند الحدود بدلاً من if-else يدوي:
json
{
"type": "object",
"properties": { "email": { "type": "string", "format": "email" } },
"required": ["email"]
}
الخلاصة
JSON بسيط على السطح وخطير في التفاصيل — التحقق قبل أي معالجة، والتنسيق قبل أي قراءة، والتصغير قبل أي نشر.