ما هو تنسيق JSON؟
JSON (JavaScript Object Notation) صيغة خفيفة لتبادل البيانات قائمة على النص، مُعرَّفة في RFC 8259 و ECMA-404. مستند JSON عبارة عن شجرة من ستة أنواع من القيم — object و array و string و number و boolean و null. التنسيق يضيف مسافات بيضاء ليتمكن البشر من قراءة هذه الشجرة؛ والضغط يحذف هذه المسافات لتنقلها الآلات أسرع عبر الشبكة.
كيف يعمل تنسيق JSON؟
تتم معالجة المدخلات بالكامل داخل متصفحك باستخدام الدالتين المدمجتين JSON.parse و JSON.stringify. الخطوات الرئيسية هي:
- يُقرأ المدخل من حقل النص وتُحذف المسافات البيضاء في بدايته ونهايته.
- يحلل المتصفح المدخل عبر
JSON.parse. إذا لم يكن المدخل JSON صالحاً، يطلق المحلل خطأSyntaxErrorيُلتقط ويُعرض مع رقم السطر والعمود اللذين توقف عندهما. - حين يكون المدخل صالحاً، يُعاد إصدار القيمة المحللة باستخدام
JSON.stringify(value, null, indent)، حيثindentهي المسافة البادئة التي اخترتها (مسافتان، أربع مسافات، أو علامة جدولة). - للضغط، تُستدعى
JSON.stringify(value)بدون وسيط للمسافة البادئة، فينتج أقصر شكل صالح للقيمة نفسها بدون أي مسافات زائدة. - يُكتب الناتج في حقل نصي للقراءة فقط، وتُبلِّغ لوحة الحالة إما JSON صالح أو الخطأ الدقيق في التحليل، لتتمكن من تصحيح المصدر مباشرةً.
لماذا نُنسّق JSON باستخدام هذه الأداة؟
- الخصوصية: كل عملية تحليل وتنسيق وضغط تحدث داخل متصفحك. JSON لا يصل أبداً إلى خوادمنا.
- تحقق فوري: الفواصل في غير موضعها، والمفاتيح غير المقتبسة، وعلامات الاقتباس الأحادية، والفواصل الزائدة في النهاية يُبلَّغ عنها مع إشارة دقيقة لرقم السطر والعمود لتقفز مباشرةً إلى موضع الخطأ.
- ناتج جاهز للمراجعة: يُنتج JSON المنسق بمسافة بادئة متسقة فروقات نظيفة في مراجعة الشيفرة وملفات إعداد سهلة القراءة.
- ضغط جاهز للإنتاج: حذف المسافات الزائدة يقلِّص حمولات واجهات برمجة التطبيقات وملفات البيان وعينات الاختبار المدمجة قبل نشرها.
ما هي التطبيقات الشائعة لتنسيق JSON؟
تظهر قراءة JSON وكتابته في معظم مجالات تطوير الويب والأدوات:
- تصحيح APIs: لصق استجابة خام من
curlأو من لوحة الشبكة للتحقق من الشكل، أو لإيجاد خطأ إملائي في مفتاح، أو لاكتشاف قوس إغلاق مفقود. - تنظيف الإعدادات: إعادة تنسيق
package.jsonأوtsconfig.jsonأو ملفات بيان CI المعدلة يدوياً لتجتاز المراجعة والـ linters. - قراءة السجلات: إعادة تنسيق سطور سجلات
application/jsonالمضغوطة بحيث يصطفّ كل حقل تحت الذي يليه، ثم ضغطها مرة أخرى قبل لصقها في تذكرة.
كيف يبدو مثال على تنسيق JSON؟
إذا ألصقت {"id":42,"name":"Ada Lovelace","email":"ada@example.com","roles":["admin","engineer"]} وضغطت زر التنسيق بمسافة بادئة من مسافتين، فإنه يتمدد إلى تسعة أسطر، يحتل فيها كل حقل من الكائن وكل عنصر من المصفوفة سطراً مستقلاً. والضغط على زر الضغط على النص المنسق يعيده إلى نفس السلسلة المضغوطة بايتاً ببايت.
يحلل هذا المُنسِّق JSON باستخدام المحرك نفسه الذي تعتمده بيئة تشغيل Node.js أو Deno أو متصفحك، ويُنتج ناتجاً يمكنك لصقه مباشرة في الشيفرة أو الإعدادات أو السجلات.