استفاده رايج ازJSON براي تبادل داده با يك وب سروراست . هنگام دريافت داده از يك وب سرور، داده ها هميشه يك رشته هستند.
با متدJSON.stringify( )ميتوان اشياء جاوااسكريپت را به داده جسوني تبديل كرد.
شئ زيرا را در جاوااسكريپت درنظر بگيريد:
const obj = {name: "John", age: 30, city: "New York"};
با استفاده از متدJSON.stringify( )ميتوان آنرا را برشته جسوني تبديل نمود، مطابق زير:
const myJSON = JSON.stringify(obj);
نتيجه آن رشته اي متناسب با نمادJSON ميباشد .
myJsonاكنون بصورت رشته فرمت جسوني است، كه آماده ارسال براي سروراست .
مثال ـ تبديل شئ جاوااسكريپت به نماد جسوني
const obj = {name: "John", age: 30, city: "New York"}; const myJSON = JSON.stringify(obj);
در فصل هاي بعدي در مورد ارسال داده جسوني به سرور بحث ميگردد.
همچنين ميتوان آرايه هاي جاوااسكريپت را برشته جسوني تبديل كرد .نمونه اي از آرايه جاوااسكريپت زيرا در نظر بگيريد:
const arr = ["John", "Peter", "Sally", "Jane"];
اين آرايه را در زير با تابعJSON.stringify( ) برشته جسوني تبديل ميكنيم.
const myJSON = JSON.stringify(arr);
نتيجه آن رشته اي متناسب با نمادJSON ميباشد .
myJsonاكنون بصورت رشته فرمت جسوني است، كه آماده ارسال براي سروراست .
مثال ـ تبديل آرايه جاوااسكريپت به نماد جسوني
const arr = ["John", "Peter", "Sally", "Jane"]; const myJSON = JSON.stringify(arr);
در فصل هاي بعدي در مورد ارسال داده جسوني به سرور بحث ميگردد.
هنگام ذخيره كردن داده ها ، آنها بايد فرمت خاصي صرف نظر از محل ذخيره داشته باشند .متن هميشه يكي از قالب هاي قانوني براي ذخيره داده ها است.
JSONامكان ذخيره اشياء جاوااسكريپت را بعنوان متن فراهم ميكند .
مثال ـ ذخيره داده در حافظه محلي
// Storing data: const myObj = {name: "John", age: 31, city: "New York"}; 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;
در جسون شئ تاريخ مجاز نيست، هرچند آن فرمت متني دارد .بايد آن بااستفاده از متد JSON.strigify( )برشته جسوني تبديل شود .
مثال ـ نمونه تبديل شئ تاريخ بفرمت جسوني بدون توجه به استثاء
const obj = {name: "John", today: new Date(), city : "New York"}; const myJSON = JSON.stringify(obj);
در مثال فوق اگر نتيجه ملاحظه كنيد، تبديل تاريخ قابل خواندن معمول نيست .براي رفع مشكل ميتوان ازتابع گيرنده استفاده كرد .يا قبل از جسوني كرد تاريخ را با دستور زير رشته اي كنيد.
درJSON توابع بعنوان مقادير شئ مجاز نيستند .تابعJSON.stringify( ) هر تابعي را از يك شئ جاوااسكريپت، كليد ومقدارش را حذف ميكند.
مثال ـ تابع بعنوان مقدار در شئ
const obj = {name: "John", age: function () {return 30;}, city: "New York"}; const myJSON = JSON.stringify(obj);
اگر قبل از اجراي تابعJSON.stringify( ) آنرا به رشته تبديل كنيد از حدف آن جلوگيري ميكنيد .مطابق مثال زير
const obj = {name: "John", age: function () {return 30;}, city: "New York"}; obj.age = obj.age.toString(); const myJSON = JSON.stringify(obj);