#شرح
ماهي صيغة Json ؟
JSON : JavaScript Object Notation .
هي احدى صيغ
نقل البيانات في عالم البرمجة وعادة ما تستخدم لنقل البيانات بين الخادم والعميل .
- ماهو الخادم وما هو العميل ؟ دائما نسمع عن الخادم والعميل ولكن بعضنا لا يعرف من هو الخادم اصلاً ومن هو العميل !
سابدأ مع العميل ، وهو انت عزيزي القارئ عندما تتصفح احد المواقع فانت تعتبر عميل لذلك الموقع (عميل مشتقه من عمل ، ولا تعني خائن كما هو متعارف ]: )
اما الخادم فهو السيرفر الذي تتصفح منه الموقع ، فكل موقع على الانترنت يجب ان يكون مستضافاً على سيرفر وهذا السيرفر متصل بالانترنت لكي يستطيع الاتصال بك وارسال صفحات الموقع الى متصفحك .
حسناً ... تعرفنا على JSON ، الخادم و العميل . والان سنبدا نتعلم معلومات اكثر عن JSON .
كيف يتم كتابة Json
صيغة Json تعتمد على طريقة كائنات JavaScript فهي مشتقه منها وسميت باسمها ، لذلك فهي تعتمد على مبدأ (المفتاح : القيمة) المثال التالي يوضح ذلك
{
"first_name":"Asem",
"last_name":"Najee",
"ID":87
}
هنا الاسم الاول والاسم الاخير لشخص غير معروف :( وايضاً معرف المستخدم (ID) بشكل بسيط ، واليكم مثال عملي من الواقع في زر الاعجاب بمنشور في احد المواقع ؛ ولكن لن نتطرق لطريقه ارسال البيانات من والى الخادم .
في البداية عندما يضغط العميل زر الاعجاب سيتم معالجه الحدث وارسال البيانات التالية الى الخادم
{
"user_id":87,
"post_id":123
}
سيصل الطلب الى الخادم وتحديداً ملف ادارة الاعجابات وسيتم معالجه الاعجاب والرد الى العميل بالصيغة التالية
{
"ok":true,
"message":"Succesful"
}
هذا في حاله نجحت العملية ، وسيقوم متصفحك بمعالجة البيانات المرجعة من الخادم وتغير لون زر الاعجاب الى الازرق مثلاً للدلالة انك قد اعجبت بهذا المنشور .
انواع البيانات في JSON
غالباً وفي اغلب لغات البرمجة ان لم يكن كلها ، هناك انواع محددة للبيانات وهي (Boolean, numeric, String) اي بالعربي(المنطقية ، الرقمية ، النصوص) وهكذا في Json ايضاً حيث يجب وضع القيم النصية بين علامتي اقتباس مزدوجتين ("هنا النص") اما القيم المنطقيه والرقمية فتكتب بدون علامات تنصيص ، ستجد المثالين السابقين يحتويان على الانواع الثلاثة .
المصفوفات
يمكن ايضاً اضافة المصفوفات الى Json كالتالي :
{
"name":"Asem",
"ID":87,
"languages":["Java","PHP","JS"]
}
تلاحظ ان اللغات مصفوفة من القيم .
الكائنات
خزن Json يعتمد على الكائنات بشكل اساسي ، والكائن هو المحصور بين {} والمثال السابق يمثل كائن يحتوي على قيم نصية ومصفوفة ، لكن يمكن لاحد مفاتيح الكائن ان يحتوي على كائن آخر كالاتي
{
"name":"Asem",
"ID":87,
"languages":["Java","PHP","JS"],
"contact":{
"Telegram":"@AsemNaji",
"E-mail":"a**m@gmail.com"
}
}
ونلاحظ انه يجب كتابة المفاتيح ضمن علامتي اقتباس وفقاً لمعايير JSON .
كما يمكن جعل المصفوفات تحتوي على كائنات .. وهلم جراً .