متد JSON.stringify()
یک استفاده رایج از JSON تبادل داده با وب سرور است. [۱]
زمان ارسال داده به یک وب سرور، دادهها میبایست به صورتی رشتههای متنی باشند.
با استفاده از متد JSON.stringify()
یک شیء جاوا اسکریپت را به یک رشته متنی تبدیل کنید.
تبدیل یک شیء جاوا اسکریپت به یک رشته متنی
تصور کنید ما شیء زیر را در جاوا اسکریپت داریم:
var obj = { name: "John", age: 30, city: "New York" };
از متد JSON.stringify()
برای تبدیل آن به یک رشته متنی استفاده کنید.
var myJSON = JSON.stringify(obj);
myJSON
حالا یک رشته متنی است، و برای ارسال به سمت سرور آماده است:
مثال
1 var obj = { name: "John", age: 30, city: "New York" };
2 var myJSON = JSON.stringify(obj);
3 document.getElementById("demo").innerHTML = myJSON;
تبدیل یک آرایه جاوا اسکریپت به رشته متنی
تبدیل کردن آرایههای جاوا اسکریپت به رشتههای متنی نیز ممکن است:
تصور کنید ما آرایه زیر را در جاوا اسکریپت داریم:
var arr = [ "John", "Peter", "Sally", "Jane" ];
از تابع JSON.stringify()
برای تبدیل آن به یک رشته متنی استفاده کنید.
var myJSON = JSON.stringify(arr);
myJSON
هم اکنون یک رشته متنی است و آماده ارسال به سمت سرور است:
مثال
1 var arr = [ "John", "Peter", "Sally", "Jane" ];
2 var myJSON = JSON.stringify(arr);
3 document.getElementById("demo").innerHTML = myJSON;
خطاها
تبدیل تاریخ و زمان به رشته های متنی
استفاده از شیهای تاریخ و زمان در JSON، مجاز نیست. تابع JSON.stringify()
هر گونه شیء تاریخ و زمانی را به رشتههای متنی تبدیل میکند.
مثال
1 var obj = { name: "John", today: new Date(), city : "New York" };
2 var myJSON = JSON.stringify(obj);
3
4 document.getElementById("demo").innerHTML = myJSON;
شما میتوانید رشته متنی را در دریافت کننده دوباره به یک شیء تاریخ و زمان تبدیل کنید.
توابع تبدیل به رشته متنی
در JSON، استفاده از توابع به عنوان مقادیر شیء مجاز نیست.
متد JSON.stringify()
هر گونه تابعی را از یک شیء جاوا اسکریپت (هم کلید و هم مقدار آن را) پاک خواهد کرد:
مثال
1 var obj = { name: "John", age: function () {return 30;}, city: "New York"};
2 var myJSON = JSON.stringify(obj);
3
4 document.getElementById("demo").innerHTML = myJSON;
این امر میتواند در صورتی که شما توابع خود را قبل از اجرای متد JSON.stringify()
به رشتههای متنی تبدیل کنید، اتفاق نیفتد.
مثال
1 var obj = { name: "John", age: function () {return 30;}, city: "New York"};
2 var myJSON = JSON.stringify(obj);
3
4 document.getElementById("demo").innerHTML = myJSON;
eval()
استفاده کنید.سازگاری با مرورگرها
تابع JSON.stringify()
در تمامی مرورگرها و در آخرین نسخه استاندارد ECMAScript (جاوا اسکریپت) وجود دارد.
اعداد موجود در جدول زیر، مشخص کننده اولین نسخه مرورگر هستند که به طور کامل از تابع JSON.stringify()
پشتیبانی میکند:
![]() |
![]() |
![]() |
![]() |
![]() |
بله | ۸٫۰ | ۳٫۵ | ۴ | ۱۰٫۰ |
منابع آموزشی