الفرق بين المراجعتين ل"JavaScript/JSON/parse"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
 
ط (استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}')
 
سطر 86: سطر 86:
 
* معيار [https://www.ecma-international.org/ecma-262/6.0/#sec-json.parse ECMAScript 2015 (6th Edition)]‎.
 
* معيار [https://www.ecma-international.org/ecma-262/6.0/#sec-json.parse ECMAScript 2015 (6th Edition)]‎.
 
* معيار [https://www.ecma-international.org/ecma-262/5.1/#sec-15.12.2 ECMAScript 5.1].  
 
* معيار [https://www.ecma-international.org/ecma-262/5.1/#sec-15.12.2 ECMAScript 5.1].  
[[تصنيف:JavaScript]]
+
[[تصنيف:JavaScript|{{SUBPAGENAME}}]]
[[تصنيف:JavaScript Global Objects]]
+
[[تصنيف:JavaScript Global Objects|{{SUBPAGENAME}}]]
[[تصنيف:JavaScript JSON]]
+
[[تصنيف:JavaScript JSON|{{SUBPAGENAME}}]]

المراجعة الحالية بتاريخ 15:43، 28 يناير 2018

الدالة JSON.parse()‎ تُفسِّر سلسلة JSON النصية، وتبني القيمة أو الكائن في JavaScript الموصوف من السلسلة النصية. ويمكن توفير دالة اختيارية لإجراء عملية تحويل على الكائن قبل إعادته.

البنية العامة

JSON.parse(text[, reviver])

text

السلسلة النصية التي ستُفسَّر على أنها بصيغة JSON. راجع صفحة الكائن JSON لمزيٍد من المعلومات حول هذه الصيغة.

reviver

الدالة التي تصف كيفية تحويل القيمة المُخزَّنة بصيغة JSON إلى القيمة الأصلية قبل إعادتها.

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

كائن Object يُمثِّل قيمة JSON.

الاستثناءات

سيرمى الاستثناء SyntaxError إذا لم تكن السلسلة النصية بصيغة JSON صالحة.

أمثلة

استخدام JSON.parse()‎

JSON.parse('{}');              // {}
JSON.parse('true');            // true
JSON.parse('"foo"');           // "foo"
JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]
JSON.parse('null');            // null

استخدام المعامل reviver

إذا حُدِّدت قيمة للمعامل reviver فستحوّل القيمة المحسوبة من عملية التفسير قبل إعادته؛ أي أنَّ القيمة المحسوبة وجميع خاصياته ستمر على الدالة reviver، وإذا أعادت الدالة reviver القيمة undefined (أو لم تُعد أيّة قيمة) فستُحذَف الخاصية من الكائن، وستُغيّر قيمة الخاصية فيما عدا ذلك من الحالات.

لاحظ أنَّ المثال الآتي يستخدم الدوال السهمية:

JSON.parse('{"p": 5}', (key, value) =>
  typeof value === 'number'
    ? value * 2 // value * 2 للأرقام
    : value     // إعادة القيمة كما هي لبقية الأنواع
);

// { p: 10 }

JSON.parse('{"1": 1, "2": 2, "3": {"4": 4, "5": {"6": 6}}}', (key, value) => {
  console.log(key); // عرض اسم الخاصية
  return value;     // إعادة القيمة دون تعديل
});

// 1
// 2
// 4
// 6
// 5
// 3 
// ""

لا تسمح JSON.parse()‎ بإضافة فاصلة في النهاية

لا يجوز وضع فاصلة بعد آخر خاصية أو عنصر من عناصر المصفوفة، وفعل ذلك سيؤدي إلى رمي الاستثناء SyntaxError:

JSON.parse('[1, 2, 3, 4, ]');
JSON.parse('{"foo" : 1, }');

دعم المتصفحات

الميزة Chrome Firefox Internet Explorer Opera Safari
الدعم الأساسي نعم 3.5 8 10.5 4

مصادر ومواصفات