عن منسّق JSON
JSON (JavaScript Object Notation) هو التنسيق الأكثر شيوعاً في العالم لتبادل البيانات بين الأنظمة المختلفة. تستخدمه واجهات برمجة التطبيقات (APIs)، قواعد البيانات الحديثة (MongoDB, Firebase)، ملفات الإعدادات (package.json, .vscode/settings.json)، والتطبيقات الموبايل والويب يومياً. لكن JSON الناتج من معظم APIs يأتي مضغوطاً في سطر واحد طويل، مما يجعله شبه مستحيل القراءة بشكل مباشر.
هنا تأتي أهمية منسّق JSON — أداة بسيطة لكن لا غنى عنها لأي مطوّر. تضيف الأداة المسافات والأسطر الجديدة لجعل البيانات قابلة للقراءة (Pretty Print)، أو تحذفها لجعل الملف أصغر حجماً (Minify) عند الحاجة لنقله عبر الشبكة بكفاءة. كما تتحقّق من صحة بنية JSON وتُظهر الأخطاء النحوية بشكل واضح.
الميّزات الرئيسية
- تنسيق Pretty Print: يجعل JSON قابلاً للقراءة بتنسيقات قياسية (2 أو 4 مسافات)
- ضغط Minify: يحذف كل المسافات الزائدة لتقليل حجم الملف بنسبة 30-60%
- التحقق من صحة Validation: يكشف الأخطاء النحوية ويعرضها برسالة واضحة
- معالجة محلية: كل شيء يحدث في متصفّحك، لا يُرسَل لأي خادم
- دعم اليونيكود: يعمل مع النصوص العربية والإيموجي والرموز الخاصة
كيفية الاستخدام — خطوة بخطوة
- الصق JSON في مربع الإدخال — سواء كان مضغوطاً أو منسّقاً
- اضغط "تنسيق" لجعله قابلاً للقراءة، أو "ضغط" لتصغيره
- إذا كان JSON صحيحاً، ستظهر النتيجة في المربع السفلي
- إذا وُجد خطأ، ستظهر رسالة توضّحه (مثل: "Unexpected token at position 25")
- انقر على مربع النتيجة لنسخه تلقائياً للحافظة
أمثلة عملية
قبل التنسيق (مضغوط):
{"user":{"name":"أحمد","age":30,"emails":["a@b.com","c@d.com"]}}
بعد التنسيق:
{
"user": {
"name": "أحمد",
"age": 30,
"emails": [
"a@b.com",
"c@d.com"
]
}
}
بعد الضغط (Minify):
{"user":{"name":"أحمد","age":30,"emails":["a@b.com","c@d.com"]}}
الأخطاء الشائعة في JSON
| الخطأ | المثال الخاطئ | الصحيح |
|---|---|---|
| فاصلة زائدة في النهاية | {"a":1,} | {"a":1} |
| علامات اقتباس مفردة | {'a':1} | {"a":1} |
| مفاتيح بدون اقتباس | {a:1} | {"a":1} |
| تعليقات | {"a":1 // ملاحظة} | JSON لا يدعم التعليقات |
| قيم undefined | {"a":undefined} | {"a":null} |
أسئلة شائعة (FAQ)
ما هو JSON؟
ما الفرق بين التنسيق والضغط؟
- التنسيق (Pretty Print): يضيف مسافات وأسطر لجعل JSON قابلاً للقراءة من البشر. مفيد للتطوير والمراجعة.
- الضغط (Minify): يحذف كل المسافات والأسطر ليصبح JSON أصغر حجماً (قد يقلّ 30-60%). مفيد للنقل عبر الشبكة وتقليل استهلاك البيانات.
هل تُرفع بياناتي لخوادمكم؟
JSON.parse() و JSON.stringify() المدمجين في JavaScript. لا يتم إرسال أي شيء لأي خادم. تستطيع التأكّد بفتح Developer Tools → Network ولاحظ أنه لا توجد طلبات شبكة عند الضغط على أزرار التنسيق.كيف أكتشف الأخطاء في JSON؟
- نسيان فاصلة بين العناصر
- علامات اقتباس مفقودة حول النصوص
- أقواس غير متطابقة
{و} - استخدام علامات اقتباس مفردة
'بدل المزدوجة" - فواصل زائدة بعد آخر عنصر
هل JSON يدعم اللغة العربية؟
{"name":"محمد","emoji":"😊"} صحيح تماماً.معلومات تقنية
تستخدم أداتنا الدوال المدمجة في JavaScript: JSON.parse() للتحقق وتحويل النص لكائن، ثم JSON.stringify(obj, null, 2) للتنسيق بمسافتين، أو JSON.stringify(obj) للضغط. هذه الدوال جزء من معيار ECMA-404 الذي يحدّد بنية JSON رسمياً.
JSON يدعم ٦ أنواع بيانات فقط: string (نص بين علامات اقتباس مزدوجة)، number (رقم بدون اقتباس)، boolean (true/false)، null، array (داخل []) ، object (داخل {}). لا يدعم التواريخ مباشرة (تُحفظ كنصوص بصيغة ISO 8601)، ولا الدوال، ولا التعليقات.