JSON Parse (JSON Parse)
«تجزیه JSON» یعنی تبدیل متن JSON به شیء جاوااسکریپت. JSON فرمت متنیِ ساده است. بنابراین ابتدا متن می آید، بعد با JSON.parse() آن را شیء می کنیم.
تبدیل متن به شیء با JSON.parse
متن JSON از سرور می آید. سپس با JSON.parse() آن را به شیء تبدیل کن.
const text = "{\"name\": \"John\", \"age\": 30, \"city\": \"New York\"}";
const obj = JSON.parse(text);
استفاده از شیءِ پارس شده
حالا می توانی مقدارها را نمایش بدهی. مثل نشان دادن نام روی صفحه.
document.getElementById("demo").innerHTML = obj.name;
تجزیه آرایه با JSON.parse
اگر متن JSON، آرایه باشد، خروجی آرایه می شود؛ نه شیء.
const carsText = "[\"Ford\", \"BMW\", \"Audi\", \"Fiat\"]";
const cars = JSON.parse(carsText);
استثناها: تاریخ ها در JSON
در JSON، «تاریخ (Date)» مجاز نیست. تاریخ را به صورت رشته بنویس و بعد تبدیل کن.
const t1 = "{\"name\": \"John\", \"birth\": \"1986-12-14\", \"city\": \"New York\"}";
const o1 = JSON.parse(t1);
o1.birth = new Date(o1.birth);
استفاده از reviver برای تبدیلِ هوشمند
تابع reviver هنگام پارس هر کلید را بررسی می کند و مقدار را تغییر می دهد.
const t2 = "{\"name\": \"John\", \"birth\": \"1986-12-14\", \"city\": \"New York\"}";
const o2 = JSON.parse(t2, function(key, value) {
if (key === "birth") {
return new Date(value);
} else {
return value;
}
});
استثناها: تابع ها در JSON
تابع در JSON مجاز نیست. اگر لازم شد، به صورت رشته نگه دار.
const t3 = "{\"name\": \"John\", \"age\": \"function () {return 30;}\", \"city\": \"New York\"}";
const o3 = JSON.parse(t3);
o3.age = eval("(" + o3.age + ")");
هشدار: از تابع در JSON پرهیز کن؛ محدوده تابع از بین می رود و مجبور به eval() می شوی.
گام های عملی
- یک متن JSON از سرور بگیر.
- با
JSON.parse()آن را تبدیل کن. - مقدارها را در صفحه نمایش بده.
جمع بندی سریع
- JSON اول متن است.
- با
JSON.parseشیء می شود. - آرایه JSON، آرایه می دهد.
- تاریخ و تابع مجاز نیستند.
- برای تاریخ ها از reviver استفاده کن.
برای مرجع سریع: JSON Parse. همچنین انواع داده در JSON و JSON Stringify را ببین.