مقدمة حول تركيبة json و كيفية أستخدامها



ان لغة JSON هو اختصار JavaScript Object Notation مجموعة كائنات الجافاسكربت .

تشبه لغة XML في تركيبة الكود عند إنشاء واستدعاء معلومات النص .

تعتبر لغة JSON أسهل واسرع من XML من حيث كتابة الأكواد .

مثال
{
"employees": [
{ "firstName":"محمد" , "lastName":"الأحمد" },
{ "firstName":"علي" , "lastName":"صالح" },
{ "firstName":"منى" , "lastName":"الأسعد" }
]
}


يتألف الكائن employees من مصفوفة تتكون من 3 موظفين .




ماهي لغة JSON ؟



  • ان لغة JSON هو اختصار JavaScript Object Notationمجموعة كائنات الجافاسكربت .

  • تعتبر لغة JSON لغة خفيفة من حيث تغيير بيانات النصوص .

  • ان لغة JSON هي لغة غير مستقلة . *

  • ان لغة JSON توصف الأشياء بشكل ذاتي و هي سهلة جداً للدراسة .


* تستخدم لغة JSON تركيبة الجافاسكربت JavaScript لوصف و إنشاء البيانات و لكن تعتبر JSON لغة و قاعدة أساس غير مستقلة . تم إيجاد مكتبة و أكواد JSON للعديد من لغات البرمجة المختلفة .




تشبه JSON كائنات JavaScript


ان صيغة JSON مشابهة تماماً إنشاء الكائنات الخاصة بالجافاسكربت JavaScript .

وبسبب هذه التشابهات وبدلاً من استخدام أكواد أخرى , يمكن استخدام الكود الوظيفي المعرف مسبقاً في الجافاسكربت و هو eval() و ذلك لإنشاء أكواد لكائنات جافاسكربت JavaScript .




مقدمة عامة حول json




مثال
<html dir="rtl">
<body>

<h2>إنشاء كائن JSON من خلال الجافاسركبت</h2>

الاسم: <span id="jname"></span><br />
العمر: <span id="jage"></span><br />
العنوان: <span id="jstreet"></span><br />
الهاتف: <span id="jphone"></span><br />
</p>

<script type="text/javascript">

var JSONObject= {
"name":"محمد الأحمد",
"street":"الشارع الأخير 555",
"age":33,
"phone":"555 1234567"};

document.getElementById("jname").innerHTML=JSONObject.name
document.getElementById("jage").innerHTML=JSONObject.age
document.getElementById("jstreet").innerHTML=JSONObject.street
document.getElementById("jphone").innerHTML=JSONObject.phone

</script>
</body>
</html>







تشبه XML



  • ان لغة JSON هي نص عادي .

  • لغة JSON للقراءة البشرية .

  • ان JSON تستخدم الترتيب الهرمي أي قيمة داخل قيمة .

  • يمكن كتابة أكواد JSON من خلال الجافاسكربت .

  • يمكن نقل بيانات JSON من خلال لغة AJAX .






لا تشبه XML



  • لايوجد نهاية للوسم .

  • قصير .

  • سهل القراءة و الكتابة .

  • يمكن إنشاء الأكواد من خلال eval() .

  • يمكن استخدام المصفوفات arrays .

  • لايوجد كلمات ملغية .






لماذا JSON ؟


وفقاً للغة AJAX تعتبر لغة JSON اسهل و أسرع استخداماً من XML :

استخدام XML



  • استدعاء صفحة XML .

  • استخدام HTML DOM لإنشاء حلقة داخل الصفحة .

  • تخرن البيانات في متغيرات .


استخدام JSON



  • استدعاء نص JSON .

  • استخدام eval() مع نص JSON .


تركيبة JSON



تعتبر تركيبة JSON مشابهة تماماً لتركيبة JavaScript .




شروط التركيبة


تعتبر تركيبة JSON مشابهة تماماً لتركيبة إنشاء كائنات JavaScript .

  • تستخدم بشكل زوجي الأسم والقيمة .

  • تفصل البيانات من خلال فاصلة "," .

  • يتم وضع الكائنات بين أقواس منحنية .

  • يتم وضع المصفوفات ضمن أقواس نص مستطيلة .






استخدام الاسم والقيمة بشكل زوجي


تكتب بيانات JSON بشكل زوجي الأسم والقيمة .

تتكون مجموعة الاسم والقيمة على حقل الاسم ثم نقطتين ":" ثم القيمة :
"firstName" : "محمد"

ان هذا الكود سل جداً لفهمه وهو مشابه لكود الجافاسكربت :
firstName = "محمد"





القيم


يمكن أن تكون القيم في JSON :

  • رقم عادي أو رقم مع فواصل .

  • نص باستخدام أقواس الاقتباس .

  • بوليان Boolean .

  • مصفوفة باستخدام الأقواس المستطيلة .

  • كائن باستخدام أقواس منحنية .

  • فارغ null






الكائنات


تكتب كائنات JSON ضمن أقواس منحنية {} .

يحتوي الكائن على أكثر من زوجين للاسم والقيمة :
{ "firstName":"محمد" , "lastName":"الأحمد" }

ان هذا الكود سل جداً لفهمه وهو مشابه لكود الجافاسكربت :
firstName = "محمد"lastName = "الأحمد"






المصفوفات Arrays


تكتب مصفوفات JSON داخل أقواس مستطيلة .

تحتوي المصفوفات على أكثر من كائن :
{
"employees": [
{ "firstName":"محمد" , "lastName":"الأحمد" },
{ "firstName":"علي" , "lastName":"صالح" },
{ "firstName":"منى" , "lastName":"الأسعد" }
]
}

في المثال السابق الكائن employees يحتوي على 3 كائنات . و كل كائن هو تعريف عن الشخص من خلال الاسم الأول والكنية .




استخدام تركيبة JavaScript مع JSON


لا تحتاج JSON برامج اضافية لتعمل على الجافاسكربت لأن JSON تستخدم تركيبة الجافاسكربت في إنشاء الأكواد .

باستخدام الجافاسكربت JavaScript يمكنك إنشاء مصفوفات للكائنات و تعيين قيم عليهم :

مثال
var employees = [
{ "firstName":"محمد" , "lastName":"الأحمد" },
{ "firstName":"علي" , "lastName":"صالح" },
{ "firstName":"منى" , "lastName":"الأسعد" }
];

يمكن الوصول الى أول عنصر كائن في الجافاسكربت من خلال الكود التالي :
employees[0].lastName;

القيمة العائدة هي :
الأحمد

يمكن التعديل على البيانات كالتالي :
employees[0].lastName = "العلي";

ستتعلم في الدرس القادم كيفية تحويل نص JSON الى كائن جافاسكربت JavaScript object .




ملفات JSON



  • امتداد ملفات JSON هي ".json"

  • ان نوع MIME لنص JSON و "application/json" .



كيفية استخدام json



تحويل نص JSON الى كائن جافاسكربت JavaScript object

أشهر استخدام للغة JSON هو إظار البيانات من السيرفر مثل الملف او HttpRequest . يمكن تحويل ملفات ونصوص JSON الى كائن جافاسكربت ثم استخدام البيانات في صفحة الويب .

وللبساطة يمكن شرح ذلك باستخدام النص في الحقل بدلاً من الملف .




مثال إنشاء كائن من النص

إنشاء نص JavaScript يحتوي على تركيبة JSON :
var txt = '{ "employees" : [' +
'{ "firstName":"محمد" , "lastName":"الأحمد" },' +
'{ "firstName":"علي" , "lastName":"صالح" },' +
'{ "firstName":"منى" , "lastName":"الأسعد" } ]}';

بما أن تركيبة JSON هي نفسها تركيبة JavaScript يمكننا استخدام الوظيفة eval() لتحويل نص JSON الى كائن جافاسكربت JavaScript .

تستخدم الوظيفة eval() مترجم الجافاسكربت JavaScript و الذي سيقوم بإنشاء نص JSON و إنشاء كائن جافاسكربت JavaScript . يجب أن يكون النص ضمن الأقواس لتجنب رسائل الأخطاء الكتابية :
var obj = eval ("(" + txt + ")");

استخدام الجافاسكربت JavaScript مع صفحتك
<p>
First Name: <span id="fname"></span><br />
Last Name: <span id="lname"></span><br />
</p>
<script type="text/javascript">
document.getElementById("fname").innerHTML = obj.employees[1].firstName
document.getElementById("lname").innerHTML = obj.employees[1].lastName
</script>





الأكواد


يمكن للكود الوظيفي eval() إنشاء و استدعاء أي كود جافاسكربت JavaScript . و ذلك يمكن أن يقدم مشاكل أمنية ممكنة .

من الآمن استخدام أكواد JSON لتحويل نصوص JSON إلى كائن جافاسكربت JavaScript . سيتذكر كود JSON فقط نصوص JSON و لن يترجم أي لغة أخرى .

تعتبر أكواد JSON سريعة مع المتصفحات التي تدعم لغة JSON الرسمية .

يتضمن الدعم JSON الرسمي في المتصفحات الأحدث و الاصدارات الأحدث من الجافاسكربت JavaScript الرسمية أي ECMAScript .











متصفحات الويب الداعمةبرامج الويب الداعمة


  • Firefox (Mozilla) 3.5

  • Internet Explorer 8

  • Chrome

  • Opera 10

  • Safari 4




  • jQuery

  • Yahoo UI

  • Prototype

  • Dojo

  • ECMAScript 1.5







تعليقات