ان لغة 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 .
متصفحات الويب الداعمة | برامج الويب الداعمة |
---|---|
|
|