JSON Parse
في هذا الدرس سوف نتعرف علي طريقة تحليل بيانات ال JSON وتحويلها من صيغة الي أخري
التاريخ
الدروس
المستوى
اللغة
المشاهدات
المواضيع
الشروحات chevron_left JSON Parse chevron_left JavaScript
JSON Parse
</> JSON Parse
- الاستخدام الشائع الذي تستخدم خلاله ال JSON هو ارسال واستقبال البيانات من والي الخادم
- عند استقبال البيانات من خادم الويب فأنها تكون دائما في الحالة النصية
- يمكنك تحويل هذه البيانات الي JavaScript object باستخدام الدالة ( )JSON.parse
</> Example - Parsing JSON
تخيل أننا تلقينا هذا النص من خادم ويب:
'{"name":"Ahmed", "age":30, "city":"New York"}'
فيمكنك تحويل النص السابق الي javaScript object باستخدام الدالة ( )JSON.parse
const obj = JSON.parse('{"name":"ahmed", "age":30, "city":"New York"}');
تأكد من أن النص بتنسيق JSON ، وإلا ستحصل على خطأ في syntax
Example
<p id="demo"></p> <script> document.getElementById("demo").innerHTML = obj.name; </script>
</> Array as JSON
عند استخدام JSON.parse () على JSON مشتق من مصفوفة ، ستقوم الالة بأرجاع مصفوفة JavaScript بدلاً من كائن JavaScript.
Example
const text = '["Ford", "BMW", "Audi", "Fiat"]'; const myArr = JSON.parse(text);
Exceptions
</> Parsing Dates
عنصر التاريخ "Date object " غير مسموح به في ال JSON ولكن اذا كنت تريد تضمين التاريخ يمكنك كتابته في هيئة نصوص String وبعد ذلك يمكنك تحويله مره اخري الي Date object
Example
في هذا المثال نقوم بتحويل النص الي تاريخ
const text = '{"name":"Ahmed", "birth":"1986-12-14", "city":"New York"}'; const obj = JSON.parse(text); obj.birth = new Date(obj.birth); document.getElementById("demo").innerHTML = obj.name + ", " + obj.birth;
أو يمكنك استخدام المعلمة الثانية للدالة JSON.parse () المسماة reviver وهي عبارة عن دالة تتحقق من كل خاصية قبل إرجاع القيمة.
const text = '{"name":"Ahmed", "birth":"1986-12-14", "city":"New York"}'; const obj = JSON.parse(text, function (key, value) { if (key == "birth") { return new Date(value); } else { return value; } }); document.getElementById("demo").innerHTML = obj.name + ", " + obj.birth;
</> Parsing Functions
غير مسموح بأستخدام الدوال في ال JSON
- اذا كنت تريد تضمين دالة معينه يمكنك فعل ذلك عن طريق كتابتها كنص ك String وبعد ذلك يمكنك اعادة تحويلها مره اخري الي دالة
Example
const text = '{"name":"Ahmed", "age":"function () {return 30;}", "city":"New York"}'; const obj = JSON.parse(text); obj.age = eval("(" + obj.age + ")"); document.getElementById("demo").innerHTML = obj.name + ", " + obj.age();