JSON Stringify (JSON Stringify)
«رشته سازی JSON» یعنی تبدیل داده جاوااسکریپت به متن JSON. برای ارسال به سرور، داده باید رشته باشد. با JSON.stringify() این کار ساده می شود.
رشته سازی شیء با JSON.stringify
یک شیء داریم. سپس با JSON.stringify() آن را به رشته JSON تبدیل می کنیم.
const obj = {
name: "John",
age: 30,
city: "New York"
};
const myJSON = JSON.stringify(obj);
نکته: خروجی یک رشته JSON است و آماده ارسال.
رشته سازی آرایه
آرایه هم همین است. خروجی، رشته JSON می شود.
const arr = [
"John",
"Peter",
"Sally",
"Jane"
];
const myJSON = JSON.stringify(arr);
ذخیره سازی با LocalStorage
برای ذخیره، متن همیشه مجاز است. پس شیء را رشته کن، بعد ذخیره کن.
// ذخیره سازی:
const myObj = {
name: "John",
age: 31,
city: "New York"
};
const myJSON = JSON.stringify(myObj);
localStorage.setItem("testJSON", myJSON);
// بازیابی:
let text = localStorage.getItem("testJSON");
let objLoaded = JSON.parse(text);
document.getElementById("demo").innerHTML = objLoaded.name;
رشته سازی انواع دیگر داده
عدد و بولی
تو می توانی عدد یا بولی را هم رشته کنی.
const num = 123e-5;
const jsonNum = JSON.stringify(num);
let bool = new Boolean(1);
const jsonBool = JSON.stringify(bool);
تاریخ (Date)
Date در JSON مجاز نیست. stringify آن را به رشته تبدیل می کند.
const o = {
name: "John",
today: new Date(),
city: "New York"
};
const jsonWithDate = JSON.stringify(o);
تابع ها در حین رشته سازی
تابع در JSON مجاز نیست. stringify کلید و مقدار تابع را حذف می کند.
const u = {
name: "John",
age: function() {
return 30;
},
city: "New York"
};
const jsonDropFn = JSON.stringify(u);
هشدار: ارسال تابع با JSON توصیه نمی شود. محدوده از بین می رود و باید eval() استفاده شود.
اگر مجبور شدی تابع بفرستی
تابع را قبل از رشته سازی، به رشته تبدیل کن.
const v = {
name: "John",
age: function() {
return 30;
},
city: "New York"
};
v.age = v.age.toString();
const jsonKeepFnAsText = JSON.stringify(v);
گام های عملی
- داده را آماده کن.
- با
JSON.stringify()آن را رشته کن. - رشته را ذخیره یا ارسال کن.
جمع بندی سریع
- رشته سازی JSON برای ارسال ضروری است.
- آرایه و شیء هر دو رشته می شوند.
- Date به رشته تبدیل می شود.
- تابع ها حذف می شوند.
- برای ذخیره، همیشه رشته امن است.
برای ادامه یادگیری: رشته سازی JSON و Parse، همچنین انواع داده در JSON. یک راهنمای دیگر: رشته سازی JSON.