ما هو JSON؟

آخر تحديث 17 أكتوبر 2024

ما هو JSON؟

JSON هو تنسيق خفيف الوزن لتبادل البيانات يسهل على الأشخاص قراءته وكتابته وعلى الآلات تحليله وإنشاءه. وهو اختصار ل JavaScript Object Notation ويستخدم على نطاق واسع في تطبيقات الويب لنقل البيانات بين الخادم والعميل.

تأتي بساطة JSON من بنيتها التي تستخدم أزواج المفاتيح-القيم لتمثيل البيانات. وهي تشبه طريقة هيكلة الكائنات في JavaScript، لكنها مستقلة عن اللغة مما يجعلها متعددة الاستخدامات ومتوافقة مع العديد من لغات البرمجة. تُستخدم JSON عادةً لإرسال البيانات واستقبالها في واجهات برمجة التطبيقات، مما يوفر طريقة نظيفة وفعالة لتمثيل المعلومات المنظمة مثل تفاصيل المستخدم أو الإعدادات أو المحتوى.

بفضل سهولة قراءته وطبيعته الخفيفة واعتماده على نطاق واسع، أصبح JSON معيارًا لتبادل البيانات على الويب. وهذا يجعلها بسهولة تنسيقًا مفضلاً لتطوير الويب الحديث.

الميزات الرئيسية ل JSON

  • قابلة للقراءة البشرية: بنية JSON بسيطة وبديهية، مما يسهل على المطورين قراءتها وكتابتها.
  • مستقل عن اللغة: على الرغم من أن JSON مشتق من JavaScript، إلا أنه مستقل عن اللغة، مما يعني أنه يمكن دمجه مع العديد من لغات البرمجة المختلفة، مثل Python و Java.
  • خفيف الوزن: الحد الأدنى من بنية JSON يجعله تنسيقًا خفيف الوزن لتبادل البيانات، مما يقلل من كمية بيانات JSON المنقولة عبر الشبكة.

بنية JSON الأساسية

JSON مبني على بنيتين:

  • مجموعة من أزواج المفاتيح/القيم: يتم تحقيق ذلك ككائن، أو سجل، أو هيكل، أو قاموس، أو جدول تجزئة، أو قائمة ذات مفاتيح، أو مصفوفة ارتباطية.
  • قائمة مرتبة من القيم: يتجلى ذلك على شكل مصفوفة، أو متجه، أو قائمة، أو تسلسل يُعرف بمصفوفة JSON.

قواعد بناء جملة JSON

  • يتم تمثيل البيانات في أزواج مفاتيح/قيم: كل مفتاح متبوع بنقطتين، وتفصل الفواصل بين أزواج المفاتيح/القيم.
    المفاتيح عبارة عن سلاسل ويجب أن تكون محاطة بعلامات اقتباس مزدوجة.
  • الأقواس المعقوفة { } تحمل الكائنات: الكائن هو مجموعة من أزواج المفاتيح/القيم.
  • الأقواس المربعة [] تحمل المصفوفات: المصفوفة هي مجموعة مرتبة من القيم.
  • يمكن للقيم أن تكون سلاسل (بين علامتي اقتباس)، أو أرقامًا، أو كائنات، أو مصفوفات، أو صواب، أو خطأ، أو لاغية.

مثال JSON مبسط

فيما يلي مستند JSON مبسط يمثل شخصًا:

				
					{ 

"name": "John Doe", 

"age": 30, 

"isStudent": false, 

"address": { 

"street": "123 Main St", 

"city": "Anytown" 

}, 

"phoneNumbers": [ 

"555-555-5555", 

"555-555-5556" 

] 

} 
				
			

الشرح

  • أزواج المفاتيح/القيم: يتم تمثيل البيانات في أزواج مفاتيح/قيمة، حيث يكون كل مفتاح متبوعًا بنقطتين والقيمة.
    • “الاسم”: “مجهول الهوية”: المفتاح هو “الاسم”، والقيمة هي “فلان الفلاني”.
    • “العمر”: 30: المفتاح هو “العمر” والقيمة هي 30.
    • “isStudent”: خطأ: المفتاح هو “isStudent” والقيمة خاطئة.
  • كائنات متداخلة: يمكن تداخل أي كائن مستقل داخل كائنات أخرى لتبسيط استخدامها.
    • “العنوان”: { “الشارع”: “123 الشارع الرئيسي”، “المدينة”: “Anytown”}: قيمة المفتاح “العنوان” هي كائن آخر يحتوي على “الشارع” و “المدينة”.
  • المصفوفات: تحتوي المصفوفات على قوائم مرتبة من القيم.
    • “أرقام الهاتف”: [“555-555-5555”, “555-555-5556”]: يحتوي المفتاح “phoneNumbers” على قيمة مصفوفة تحتوي على رقمي هاتف.

تحليل وتوليد JSON

توفر معظم لغات البرمجة الحديثة دعمًا مدمجًا لتحليل بيانات JSON وتوليدها. ويتضمن ذلك استخدام محلل JSON لتحويل نص JSON إلى بنية بيانات أصلية وإعادة ترميز بنيات البيانات الأصلية إلى نص JSON.

تحليل JSON

يتضمن تحليل JSON تحويل سلسلة منسقة JSON إلى بنية بيانات أصلية يمكن للغة البرمجة معالجتها بسهولة. يمكن أن تكون بنية البيانات الأصلية هذه كائنًا أو قاموسًا أو مصفوفة أو قائمة، اعتمادًا على اللغة المستخدمة. أثناء التحليل، يتم تحليل سلسلة JSON، ويتم تعيين بنيتها الهرمية إلى بنيات البيانات المقابلة، مما يتيح سهولة الوصول إلى بيانات JSON من خلال المفاتيح أو الفهارس.

إنشاء JSON

يتضمن إنشاء JSON تحويل بنية بيانات أصلية إلى سلسلة بتنسيق JSON. عادةً ما تتضمن هذه العملية اجتياز بنية البيانات الأصلية وتسلسلها إلى تنسيق JSON، مما يضمن أن سلسلة الإخراج تمثل البنية الهرمية للبيانات بشكل صحيح. يمكن بعد ذلك نقل سلسلة JSON هذه عبر شبكة أو تخزينها في ملف أو استخدامها في سياقات أخرى حيث تكون JSON مطلوبة.

JSON والمفاهيم ذات الصلة

مواصفات RFC وJSON

يحدد RFC 7159 و ECMA-404 تنسيق JSON، الذي يحدد قواعد بناء جملة JSON ويضمن أن تكون مستندات JSON صالحة JSON. تحدد مواصفات JSON بنية التنسيق وأنواع البيانات وقواعد الترميز.

JSON مقابل XML

غالبًا ما تتم مقارنة JSON بـ XML، وهو تنسيق آخر لتبادل البيانات النصية. في حين أن XML أكثر إسهابًا ويدعم نطاقًا أوسع من أنواع البيانات، إلا أن بساطة JSON وسهولة استخدامه تجعله أكثر شيوعًا لخدمات الويب وواجهات برمجة التطبيقات (واجهات برمجة التطبيقات).

مخطط JSON

يُحدد مخطط JSON الهيكل وقواعد التحقق من صحة بيانات JSON. يضمن التزام مستندات JSON بتنسيق محدد، مما يجعل التحقق من صحة البيانات وتفسيرها أسهل.

حالات استخدام JSON

  1. واجهات برمجة تطبيقات الويب: يستخدم JSON بشكل شائع لنقل البيانات في واجهات برمجة تطبيقات الويب، مما يتيح تبادل البيانات بين العميل والخادم.
  2. ملفات التكوين: غالباً ما تُستخدم ملفات JSON لإعدادات التكوين في مختلف التطبيقات والخدمات.
  3. تخزين البيانات: تستخدم بعض قواعد بيانات NoSQL، مثل MongoDB، مستندات تشبه JSON لتخزين البيانات.
  4. تبادل البيانات: يسهل JSON تبادل البيانات بين الأنظمة والتطبيقات المختلفة، مما يجعله تنسيقًا قياسيًا لتبادل البيانات.

مزايا JSON

  • البساطة: سهلة الفهم والاستخدام.
  • قابلية التشغيل البيني: يعمل عبر لغات برمجة ومنصات مختلفة.
  • صغر الحجم: تقلل طبيعته خفيفة الوزن من استخدام النطاق الترددي.

حدود JSON

  • عدم وجود تعليقات: لا تدعم JSON التعليقات، مما يجعل من الصعب تضمين الوثائق المضمنة.
  • أنواع بيانات محدودة: يدعم JSON عددًا محدودًا فقط من أنواع البيانات، وهو ما يمكن أن يكون قيدًا على بنيات البيانات المعقدة.

استنتاج

أصبح JSON معيار الصناعة لتبادل البيانات في تطوير الويب نظرًا لبساطته وسهولة استخدامه. يعد فهم JSON أمرًا ضروريًا للبرمجة الحديثة وتبادل البيانات، سواء كنت تعمل مع واجهات برمجة تطبيقات الويب أو تكوين التطبيقات أو تخزين البيانات في قواعد بيانات NoSQL. توفر أدوات مثل GitHub مجموعة واسعة من المشاريع المتعلقة بـ JSON، بما في ذلك أدوات التحليل والتشفير للغات البرمجة المختلفة، مما يجعل العمل مع JSON في تطبيقاتك أكثر سهولة.

هل أنت جاهز لمعرفة كيف يمكن لأفضل ممارسات JSON أن تحول عملية التطوير لديك؟
سجّل للحصول على نسخة تجريبية مجانية اليوم أو حدد موعداً للحصول على عرض توضيحي لرؤية البرنامج أثناء العمل!