با استفاده از تابع stringify در Json میتوان به سادگی یک  شی در جاوا اسکریپت را به Json تبدیل کرد. در این فصل با این متد آشنا خواهیم شد.


یک استفاده ی رایج از Json تبادل داده با وب سرور است.

زمانی که داده ای را به سمت سرور ارسال میکنید ، نوع داده باید رشته باشد.

به سادگی میتوان یک شی جاوا اسکریپت را با استفاده از متد ()JSON.stringify به یک رشته تبدیل کرد.


تبدیل اشیا به رشته

تصور کنید شی ایی به مشخصات زیر در جاوا اسکریپت داریم :

var obj = { name: "John", age: 30, city: "New York" };

میتوان از تابع جاوا اسکریپت ()JSON.stringify برای تبدیل شی بالا به یک رشته استفاده کرد :

var myJSON = JSON.stringify(obj);

نتیجه اکنون یک رشته بوده و آماده ی برای ارسال به سمت وب سرور است :

var obj = { name: "John", age: 30, city: "New York" };
var myJSON = JSON.stringify(obj);
document.getElementById("demo").innerHTML = myJSON;

خودتان امتحان کنید


تبدیل آرایه به رشته

میتوان آرایه های جاوا اسکریپت را به رشته تبدیل کرد. فرض کنید آرایه ای را به شکل زیر در جاوا اسکریپت داریم :

var arr = [ "John", "Peter", "Sally", "Jane" ];

میتوان از متد ()JSON.stringify برای تبدیل آرایه ی بالا به یک رشته استفاده کرد :

var myJSON = JSON.stringify(arr);

نتیجه اکنون یک رشته بوده و آماده ی ارسال به سمت سرور است :

var arr = [ "John", "Peter", "Sally", "Jane" ];
var myJSON = JSON.stringify(arr);
document.getElementById("demo").innerHTML = myJSON;

خودتان امتحان کنید


استثناها

بعضی از انواع را نمیتوان در JSON قرار داد. در این قسمت به این انواع خواهیم پرداخت.

تاریخ

در Json اجازه ی قرار دادن تاریخ را نداریم. متد ()JSON.stringify هر تاریخی را به رشته تبدیل میکند :

var obj = { name: "John", today: new Date(), city : "New York" };
var myJSON = JSON.stringify(obj);

document.getElementById("demo").innerHTML = myJSON;

خودتان امتحان کنید

توابع

در Json نمیتوان از function ها استفاده کرد. متد ()JSON.stringify مقدار fucntion را در نتیجه بازگشتی خود حذف میکند.

var obj = { name: "John", age: function () {return 30;}, city: "New York"};
var myJSON = JSON.stringify(obj);

document.getElementById("demo").innerHTML = myJSON;

خودتان امتحان کنید

در صورتی که قبل از اینکه شی را به عنوان پارامتر تابع ()JSON.stringify بفرستید، مقدار function را به یک رشته تبدیل کنید، در این حالت حذفی رخ نخواهد داد :

var obj = { name: "John", age: function () {return 30;}, city: "New York" };
obj.age = obj.age.toString();
var myJSON = JSON.stringify(obj);

document.getElementById("demo").innerHTML = myJSON;

خودتان امتحان کنید