به نام خدا با عرض سلام و احترام خدمت شما دوستان عزیز. در ادامه آموزش جاوا اسکریت این جلسه قصد داریم به مبحث JSON Parsing در جاوا اسکریپت بپردازیم.با ما همراه باشید.
JSON چیست؟
JSON بر اساس دو ساختار اساسی است:
- Object: این ساختار عنوان مجموعه ای نامرتب از جفت های کلید/مقدار (به عنوان مثال
key:value
) تعریف می شود.هر شی با یک کرلی بریس از سمت چپ شروع می شود }و با یک کرلی بریس از سمت راست به پایان می رسد{
.چندین جفت کلید/مقدار با کاما,
از هم جدا می شوند. - Array: این ساختار به عنوان یک لیست مرتب شده از مقادیر تعریف می شود.یک آرایه با یک براکت چپ شروع می شود
]
و با یک براکت راست[
پایان می یابد. مقادیر با کاما, از هم جدا می شوند.
در JSON، نام ویژگی ها یا کلیدها همیشه رشته هستند، در حالی که مقدار می تواند یک string
, number
, true
یا false
, null
یا حتی یک object
یا یک array
باشد.رشته ها باید در داخل دابل کوتیشن "
قرار گیرند و می توانند شامل کاراکترهایی مانند\n
, \t
و \
باشند.یک شی JSON ممکن است به شکل زیر باشد:
{ "book": { "name": "Harry Potter and the Goblet of Fire", "author": "J. K. Rowling", "year": 2000, "genre": "Fantasy Fiction", "bestseller": true } }
در حالی که نمونه ای از آرایه JSON چیزی شبیه به این است:
{ "fruits": [ "Apple", "Banana", "Strawberry", "Mango" ] }
()
JSON.parse تجزیه کنید.این متد JSON استرینگ را تجزیه می کند و مقدار جاوا اسکریپت یا شیء توصیف شده توسط رشته را می سازد.اگر رشته داده شده JSON معتبر نباشد، با یک خطای نحوی مواجه خواهید شد.فرض کنید رشته کد شده با JSON زیر را از یک وب سرور دریافت کرده ایم:
{"name": "Peter", "age": 22, "country": "United States"}
()
JSON.parse برای تبدیل این رشته JSON به یک ابجکت جاوا اسکریپت استفاده کنیم و با استفاده از علامت نقطه (.) به مقادیر جداگانه دسترسی پیدا کنیم.// Store JSON data in a JS variable var json = '{"name": "Peter", "age": 22, "country": "United States"}'; // Converting JSON-encoded string to JS object var obj = JSON.parse(json); // Accessing individual value from JS object alert(obj.name); // Outputs: Peter alert(obj.age); // Outputs: 22 alert(obj.country); // Outputs: United States
تجزیه و تحلیل دادههای JSON در جاوا اسکریپت به صورت تودرتو
اشیاء و آرایه های JSON نیز می توانند تودرتو باشند.یک شی JSON می تواند به طور دلخواه شامل سایر اشیاء JSON، آرایه ها، آرایه های تو در تو، آرایه هایی از اشیاء JSON و …باشد.مثال زیر به شما نشان می دهد که چگونه یک شی JSON تودرتو را تجزیه کنید و همه مقادیر را در جاوا اسکریپت استخراج کنید.
/* Storing multi-line JSON string in a JS variable using the new ES6 template literals */ var json = `{ "book": { "name": "Harry Potter and the Goblet of Fire", "author": "J. K. Rowling", "year": 2000, "characters": ["Harry Potter", "Hermione Granger", "Ron Weasley"], "genre": "Fantasy Fiction", "price": { "paperback": "$10.40", "hardcover": "$20.32", "kindle": "$4.11" } } }`; // Converting JSON object to JS object var obj = JSON.parse(json); // Define recursive function to print nested values function printValues(obj) { for(var k in obj) { if(obj[k] instanceof Object) { printValues(obj[k]); } else { document.write(obj[k] + "<br>"); }; } }; // Printing all the values from the resulting object printValues(obj); document.write("<hr>"); // Printing a single value document.write(obj["book"]["author"] + "<br>"); // Prints: J. K. Rowling document.write(obj["book"]["characters"][0] + "<br>"); // Prints: Harry Potter document.write(obj["book"]["price"]["hardcover"]); // Prints: $20.32
رمزگذاری داده ها به صورت JSON در جاوا اسکریپت
گاهی اوقات شی جاوا اسکریپت یا مقداری از کد شما باید در طول ارتباط Ajax به سرور منتقل شود.جاوا اسکریپت متد ()
JSON.stringify
را برای این منظور فراهم می کند که یک مقدار جاوا اسکریپت را به یک رشته JSON تبدیل می کند. همانطور که در زیر نشان داده شده است:
Stringify a JavaScript Object
مثال زیر به شما نشان می دهد که چگونه یک شی جاوا اسکریپت را به رشته JSON تبدیل کنید:
// Sample JS object var obj = {"name": "Peter", "age": 22, "country": "United States"}; // Converting JS object to JSON string var json = JSON.stringify(obj); alert(json);
خروجی مثال بالا چیزی شبیه به این خواهد بود:
Stringify a JavaScript Array
به طور مشابه، می توانید آرایه های جاوا اسکریپت را به رشته های JSON تبدیل کنید، مانند :
// Sample JS array var arr = ["Apple", "Banana", "Mango", "Orange", "Papaya"]; // Converting JS array to JSON string var json = JSON.stringify(arr); alert(json);
خروجی مثال بالا چیزی شبیه به این خواهد بود:
دیدگاهتان را بنویسید