متد JSON.stringify()

از ویکی‌کد، دانشنامهٔ برنامه‌نویسی
پرش به ناوبری پرش به جستجو
Main Page Tutorial
JavaScript-menu.png
موارد آموزشی
فرم‌ها در جاوا اسکریپت
تعریف شیء در جاوا اسکریپت
تابع در جاوا اسکریپت
HTML DOM در جاوا اسکریپت
Browser BOM در جاوا اسکریپت
AJAX در جاوا اسکریپت
JSON در جاوا اسکریپت
۱مقدمه
۲شیوهٔ نوشتار
۳JSON در برابر XML
۴داده‌های مجاز
۵متد JSON Parse
۶متد JSON Stringify
۷اشیاء
۸آرایه‌ها
۹PHP در JSON
۱۰HTML در JSON
۱۱JSONP
جی‌کوئری در برابر جاوا اسکریپت
مثال‌های جاوا اسکریپت
مرجع جاوا اسکریپت

یک استفاده رایج از JSON تبادل داده با وب سرور است. [۱]

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

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

تبدیل یک شیء جاوا اسکریپت به یک رشته متنی

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

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

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

var myJSON = JSON.stringify(obj);
نتیجه یک رشته متنی خواهد بود که از ساختار JSON پیروی می‌کند.

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

مثال

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


مشاهدهٔ نتیجه


شما در مورد نحوه ارسال JSON به سمت سرور در فصل آینده مطالبی را خواهید آموخت.

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

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

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

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

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

var myJSON = JSON.stringify(arr);
نتیجه یک رشته متنی خواهد بود که از شیوه نوشتار JSON پیروی می‌کند.

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

مثال

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


مشاهدهٔ نتیجه


شما در مورد نحوه ارسال JSON به سمت سرور در فصل آینده مطالبی را خواهید آموخت.

خطاها

تبدیل تاریخ و زمان به رشته های متنی

استفاده از شی‌های تاریخ و زمان در 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;


مشاهدهٔ نتیجه


شما می‌بایست از استفاده توابع در JSON پرهیز کنید، توابع ناحیه کد (به انگلیسی: Scope) خود را تغییر می‌دهند و شما مجبور خواهید بود برای تبدیل دوباره آنها به توابع از متد eval() استفاده کنید.

سازگاری با مرورگرها

تابع JSON.stringify() در تمامی مرورگرها و در آخرین نسخه استاندارد ECMAScript (جاوا اسکریپت) وجود دارد.

اعداد موجود در جدول زیر، مشخص کننده اولین نسخه مرورگر هستند که به طور کامل از تابع JSON.stringify() پشتیبانی می‌کند:

Chrome.gif Edge.gif Firefox.gif Safari.gif Opera.gif
بله ۸٫۰ ۳٫۵ ۴ ۱۰٫۰



منابع آموزشی