English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

تحليل JSON.parse()

يستخدم JSON للتبادل البيانات مع خادم الويب. عند استقبال بيانات من خادم الويب، تكون البيانات دائمًا نصية.

تقوم دالة JSON.parse() بتحليل نص JSON لإنشاء قيمة JavaScript أو جسم يصف النص.

القواعد:

JSON.parse(text, reviver)

المعلمة الأولى تحدد النص الذي سيتم تحليله إلى JSON.

المعلمة الثانية اختيارية وتحدد دالة للتحقق من كل خاصية قبل إرجاع القيمة.

تحليل JSON

افترض أننا نحصل على النص التالي من خادم الويب:

 '{"name":"Seagull", "age":22, "city":"New Delhi"}'

باستخدام طريقة JSON.parse()، يمكننا تحويل نص JSON إلى جسم JavaScript:

var myObj = JSON.parse('{"name":"Seagull", "age":22, "city":"New Delhi"}');
اختبار لمعرفة‹/›

JSON من الخادم

يمكنك استخدام طلب AJAX لطلب JSON من الخادم.

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

في هذا المثال، يتم طلب ملفdemo.jsonو تحليل الاستجابة:

var httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = function() {
   if (this.readyState === 4 && this.status === 200) {
      var myObj = JSON.parse(this.responseText);
      document.getElementById("output").innerHTML = myObj.name;
   }
};
httpRequest.open("GET", "demo.json", true);
httpRequest.send();
اختبار لمعرفة‹/›

المجموعة كJSON

يتم استخدام طريقة JSON.parse() على JSON مأخوذ من مجموعة، وستقوم هذه الطريقة بإرجاع مجموعة JavaScript وليس عنصر JavaScript.

في هذا المثال، يتم طلب ملفjson_array.txtو تحليل الاستجابة:

var httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = function() {
   if (this.readyState === 4 && this.status === 200) {
      var myArr = JSON.parse(this.responseText);
      document.getElementById("output").innerHTML = myArr[0];
   }
};
httpRequest.open("GET", "json_array.txt", true);
httpRequest.send();
اختبار لمعرفة‹/›

تحليل التاريخ

لا يسمح JSON باستخدام عناصر التاريخ.

إذا كنت بحاجة إلى تضمين التاريخ، فكتبه كسلسلة، ثم قم بتحويله إلى عنصر تاريخي بعد ذلك.

var myJSON = '{"name":"Seagull", "birth":"1997-11-10", "city":"New Delhi"}';
var myObj = JSON.parse(myJSON);
myObj.birth = new Date(myObj.birth);
document.getElementById("output").innerHTML = myObj.name + " DOB is " + myObj.birth;
اختبار لمعرفة‹/›

ملاحظة:تحويل السلسلة إلى عنصر محلي يسمىتحليل، بينما يتم تحويل العنصر المحلي إلى شيء يمكنه النقل عبر الشبكةالسلسلةيسمىتحويل إلى سلسلة.