عبدالفتاح الصلوي

تعرف على JavaScript Object Notation - JSON

كتبها : عبدالفتاح الصلوي / في رصيف : البرمجة

تعرف على JavaScript Object Notation - JSON

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


فما هو JSON ؟

تمثل التسمية إختصاراً لـ JSON (JavaScript Object Notation) . وهي صيغة بسيطة لتمثيل وتخزين القيم والكائنات وتبادل البيانات. سهلة القراءة والكتابة من ثبل المبرمجين، بالإضافة إلى سهولة معالجتها وتوليدها من قبل لغات البرمجة. تتبع المعيار https://tools.ietf.org/html/rfc4627 .
بالرغم من أن JSON تم بنائه اعتماداً على صيغة JavaScript  إلا أنه أصبح تنسيق نصي مستقل تماماً عن اللغة، مما جعله مدعوم ومستخدم في معظم لغات البرمجة بما في ذلك  C  و C ++  و C # و Java و JavaScript و Perl و Python و Php  وغيرها الكثير. لذا فإن JSON  يعد لغة مثالية لتبادل البيانات كما أن العديد من قواعد البيانات مثل MySql  أصبحت تدعم تخزين البيانات من نوع json  في حقول من نفس النوع .


بني JSON  اعتماداً على هيكلين / بنيتين موجودة في لغات البرمجة المختلفة والتي تتمثل في :

  •   مجموعة زوجية تحتوي على  أسم / القيمة name/value . تسمى في عدة لغات بـ object, record, struct, dictionary, hash table, keyed list, or associative array.
  •   قائمة مرتبة من القيم، في معظم اللغات تمثل كـ array, vector, list, or sequence.


يمثل الهيكلان السابقان ياكل بيانات شاملة تدعمها جميع لغات البرمجة الحديثة تقريبًا بشكل أو بآخر. لذا من المنطقي أن يعتمد تنسيق البيانات القابل للتبادل مع لغات البرمجة أيضًا على هذه الهياكل وهذا ما سنلاحظه في شكل البيانات من نوع JSON
تدعم JSON  أنواع البيانات التالية  :

  •     كائن عبارة عن مجموعة زوجية غير مرتبة تحتوي على أسماء وقيم. يبدأ الكائن ب :

              {  قوس أيسر وينتهي ب  }   قوس أيمن يحتويان فيما بينهما على البيانات التي يتم تمثيلها ب إسم يتبعه : نقطتان ، ويتم الفصل بين كل زوج إسم وقيمة بفاصلة (,).  { ... }

مثال  :

let person = {
name: "Abdulfattah",
nationality: "Yemen",
email: "[email protected]",
};


  • مصفوفة  غير مرتبة تحتوي على القيم . تبدأ المصفوفة بـ [  بقوس أيسر وتنتهي بـ ]  قوس أيمن. يحويان فيما بينهما بالقيم مفصولة بفاصلة (,) . [ ... ]

  •    القيم  التي تحويها الكائنات والمصفوفات في json  يمكن أن تكون من نوع :
    o     سلاسل نصية .
    o    أرقام .
    o    قيم منطقية True , False
    o    قيمة فارغة null
    o    كائن Object
    o    مصفوفة
    وقد تكون هذه القيم إما بسيطة ويمكن أن تمثل هياكل متداخلة أي أن أي قيمة قد تكون عبارة عن كائن أو مصفوفة فرعية في الكائن الرئيسي .


مثال :

let user = {
name: "John",
age: 25,
roles: {
isAdmin: false,
isEditor: true
}
};


ختاماً كانت هذه نبذة بسيطة تحوي البيانات الأساسية عن JSON . و للمزيد يمكنكم الإطلاع على المزيد في الروابط أدناه.

مراجع :

علامات ذات صلة :