التابع ‎‎jQuery.parseJSON()‎‎ في jQuery

من موسوعة حسوب
< jQuery‏ | jQuery
اذهب إلى: تصفح، ابحث

jQuery.parseJSON( json )‎

أهمل مع الإصدار: 3.0.

القيم المعادة

يعيد مصفوفةً (Array) أو سلسلةً نصيةً (String) أو عددًا (Number) أو كائنًا (Object) أو قيمة منطقيَّة (Boolean).

الوصف

يفسِّر هذا التابع سلسلة نصية بصيغة JSON إلى قيمة مقابلة في JavaScript.

jQuery.parseJSON( json )‎

أُضيف مع الإصدار: 1.4.1.

json

سلسلة نصية بصيغة JSON يراد تفسيرها.

بدءًا من الإصدار jQuery 3.0، أهمل التابع ‎$.parseJSON()‎، لذا استعمل التابع JSON.parse()‎ الأساسي في JavaScript عوضًا عنه.

سيُرمى استثناءٌ في JavaScript إذا لم تكن السلسلة النصية المعطاة بصيغة JSON صالحة. على سبيل المثال، جميع السلاسل النصية التالية هي بصيغة JSON غير صحيحة:

  • {test: 1}: لم تضاف علامات اقتباس إلى test.
  • {‎'test': 1}: يجب استعمال علامات الاقتباس المزدوجة عوضًا عن الفردية في 'test'.
  • 'test': مثل الحالة السابقة تمامًا.
  • ‎.1: يجب أن يبدأ العدد برقم مثل "0.1".
  • undefined: لا يمكن تمثيل القيمة undefined في سلسلة JSON النصية. أمَّا القيمة null فيمكن تمثيلها.
  • NaN: لا يمكن تمثيل القيمة NaN في سلسلة JSON النصية. تمثيل Infinity بصورة مباشرة غير مسموح به أيضًا.

لا تسمح JSON القياسيَّة باستعمال "محارف التحكم" مثل مسافة الجدولة (tap) أو محرف السطر الجديد. عبارةً مثل ‎$.parseJSON( '{ "testing":"1\t2\n3" }' )‎ سترمي خطأً في أغلب الحالات لأنَّ مفسِّر JavaScript يحوِّل محرف مسافة الجدول والسطر الجديد المهربين إلى مسافة جدولة وسطر جديد بشكل فعلي؛ سيؤدِّي مضاعفة الخط المائل العكسي بالشكل "1\\t2\\n3" إلى الحصول على نتائج متوقَّعة. تحصل مثل هذه المشكلات بشكل كبير عند حقن بيانات بصيغة JSON في ملف JavaScript من لغةٍ من طرف الخادم مثل لغة PHP.

تستعمل jQuery التنفيذ الأساسي للتابع JSON.parse()‎ الذي يوفِّره المتصفح لتحليل السلسلة النصية حيث أمكنها ذلك. للمزيد حول صياغة JSON، اطلع على موقعها الرسمي.

قبل الإصدار jQuery 1.9، كان التابع ‎$.parseJSON()‎ يعيد القيمة العدميَّة (null) عوضًا عن رمي خطأٍ إن مُرِّرت سلسلة نصية فارغة، أو قيمة عدميَّة (null)، أو قيمة غير معرَّفة (undefined)، حتى سلسلة JSON النصية ذات الصياغة غير الصالحة.

أمثلة

تفسير سلسلة JSON نصية:
var obj = jQuery.parseJSON( '{ "name": "عدنان" }' );
alert( obj.name === "عدنان" );

مصادر