JSON Stringify
في هذا الدرس سوف نتعرف علي طريقة تحويل البيانات في ملفات ال JSON وتحويلها من صيغة الي أخري باتسخدام دالة ( )stringfiy
التاريخ
الدروس
المستوى
اللغة
المشاهدات
المواضيع
الشروحات chevron_left JSON Stringify chevron_left JavaScript
JSON Stringify
</> JSON Stringify
a- الاستخدام الشائع الذي تستخدم خلاله ال JSON هو ارسال واستقبال البيانات من والي الخادم
- عند استقبال البيانات من خادم الويب فأنها تكون دائما في الحالة النصية
- يمكنك تحويل object في لغة java Script الي نص string باستخدام الدالة ( )JSON.stringify
</> Stringify a JavaScript Object
ولنفترض اننا لدينا ال object التالي والذي نريد تحويله الي نص string
const obj = {name: "Ahmed", age: 30, city: "New York"};
فيمكننا تحويله بكل سهولة عن طريق استخدام الدالة ( )JSON.stringify بالطريقة التالية
const myJSON = JSON.stringify(obj);
وبعد ان قمنا بالخطوة السابقة فقد اصبح العنصر "myJSON" هو عبارة عن عنصر من النوع string وليس object كما في المثال التالي
const obj = {name: "Ahmed", age: 30, city: "Cairo"}; const myJSON = JSON.stringify(obj);
</> Stringify a JavaScript Array
يمكننا أيضا تحويل المصفوفات arrays الي نصوص string
- ولنفترض اننا لدينا المصفوفة التالية التي تحتوي علي أربعة أسماء ونريد تحويلها من array الي string
const arr = ["Ahmed", "Mohamed", "Noha", "Norhan"];
فيمكننا تحويلها بكل سهولة عن طريق استخدام الدالة ( )JSON.stringify بهذه الطريقة
const myJSON = JSON.stringify(arr);
وبعد ان قمنا بالخطوة السابقة فقد اصبح العنصر "myJSON" هو عبارة عن عنصر من النوع string وليس array كما في المثال التالي
const arr = ["Ahmed", "Mohamed", "Noha", "Norhan"]; const myJSON = JSON.stringify(arr);
</> Storing Data
عند تخزين البيانات ، يجب أن تكون البيانات بتنسيق معين
وبغض النظر عن المكان الذي تختار تخزينه فيه يجب ان يكون النص دائمًا أحد التنسيقات المعروفة
- في المثال التالي قمنا بتخزين البيانات بداخل ال Local Storage
/* Storing data: */ const myObj = {name: "Ahmed", age: 31, city: "Cairo"}; const myJSON = JSON.stringify(myObj); localStorage.setItem("testJSON", myJSON); /* Retrieving data: */ let text = localStorage.getItem("testJSON"); let obj = JSON.parse(text); document.getElementById("demo").innerHTML = obj.name;
Exceptions
</> Stringify Dates
- في ال java Script غير مسموح باستخدام ال object التالي "Date"
- ولكننا نستطيع استخدامه عن طريق تحويل قيمته الي نصوص بأستخدام دالة ( )JSON.stringify
Example
const obj = {name: "Ahmed", today: new Date(), city : "Cairo"}; const myJSON = JSON.stringify(obj);
</> Stringify Functions
في ال JSON غير مسموح بأستخدام الدوال Functions كقيم values بداخل ال objects
- ستقوم الدالة ( )JSON.stringify بأزالة أي عنصر من عناصر ال object اذا كانت قيمته value عبارة عن دالة function
Example
const obj = {name: "Ahmed", age: function () {return 30;}, city: "Cairo"}; const myJSON = JSON.stringify(obj);
ولكن يمكنك تخطي المشكلة السابقة عن طريق تحويل الدوال الخاصة بك الي string باستخدام الدالة ( )JSON.stringify
const obj = {name: "Ahmed", age: function () {return 30;}, city: "Cairo"}; obj.age = obj.age.toString();
اذا قمت بتمرير دوال كقيم بداخل object باستخدام JSON ، فستفقد الدوال scope نطاقها ، وسيتعين على المتلقي استخدام الدالة EVAL () لتحويلها مرة أخرى إلى دوال .