آموزش جاوا اسکریپت – JSON در جاوا اسکریپت

آموزش جاوا اسکریپت

در این بخش از سری آموزش جاوا اسکریپت قصد داریم به شما نحوه اینکد و دیکد داده JSON در جاوا اسکریپت را آموزش بدیم.

 

JSON چیست

JSON مخفف JavaScript Object Notation است. JSON یک فرمت تبادل-داده ای بسیار سبک برای تبادل داده ها بین سرور و کلاینت که برای تولید و پردازش سریع و آسان است.

همانند XML , JSON نیز یک فرمت بر اساس متن است که خواندن و نوشتن آن هر دو برای انسان و کامپیوتر بسیار ساده است اما برخلاف XML , داده JSON نسبت به ورژن XML خود پهنای باند بسیار کمتری اشغال می کند.

JSON بر اساس دو ساختار ساده است :

  • Object : به عنوان یک مجموعه نامرتب از جفت کلید/مقدار (Key:value) است. هر شیء با یک براکت فرفره ای چپ { شروع و با براکت فرفره ای راست } بسته می شود. جفت های چندگانه key/value با کاما , از همدیگر جدا می شوند.
  • Array : به عنوان یک لیست مرتب شده از مقادیر تعریف می شود. یک آرایه با براکت مربعی [ شروع و با براکت مربعی ] به پایان می رسد. مقادیر آن با کاما , از هم جدا می شوند.

در JSON , نام خصوصیات یا کلید ها همیشه رشته (string) هستند در حالی که می توانید رشته, عدد , true, false, null شی یا آرایه نیز باشد.

رشته ها باید داخل علامت نقل قول قرار گیرند و می توانند دارای کاراکترهای \n, \t, \ باشند.

یک شیء ‌JSON شبیه به این است :

یک مثال از آرایه JSON نیز مشابه این است :

نکته: یک فرمت داده قابل تبادل یک فرمت متنی است که برای تبادل داده بین پلتفرم و سیستم عامل های مختلف استفاده می شود. JSON محبوب تین و سبک ترین فرمت داده قابل تبادل برای اپلیکیشن ها تحت وب و موبایل است.

 

تجزیه داده JSON در جاوا اسکریپت

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

اگر مقدار رشته JSON نامعتبر باشد یک ارور سینتکس دریافت خواهید کرد.

فرض کنیم که رشته اینکد شده به JSON زیر را از یک وب سرور دریافت کردید :

حالا می توانید به راحتی از متد JSON.parse() برای تبدیل این رشته JSON به شیء جاوا اسکریپت و دسترسی به هر یک از مقادیر آبجکت با نقطه . استفاده کنید.

 

تجزیه داده تو در تو JSON در جاوا اسکریپت

آبجکت های JSON و آرایه ها نیز می توانند تو در تو (nested) باشند. یک آبجکت JSON می تواند شامل دیگر آبجکت های JSON , آرایه ها, آرایه های تو در تو و آرایه ای از آبجکت های JSON باشد.

مثال زیر به شما نحوه تجزیه یک شی تو در تو JSON و استخراج تمام مقادیر آن در جاوا اسکریپت را نشان می دهد.

 

اینکد داده ها به JSON در جاوا اسکریپت

بعضی مواقع شیء جاوا اسکریپت یا مقداری از کد شما نیاز به انتقال به سرور با AJAX را دارد.

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

 

رشته کردن یک Object جاوا اسکریپت

مثال زیر به شما نحوه تبدیل شیء جاوا اسکریپت به رشته JSON را نشان می دهد:

خروجی مثال بالا شبیه به این خواهد بود :

نکته: با اینکه, جاوا اسکریپت و آبجکت های JSON (جیسون) کاملا مشابه هم هستند اما دقیقا یکسان نیستد. برای مثال در جاوا اسکریپت, نام خصوصیات شیء می توانید داخل “” یا ‘’ و یا بدون علامت نقل قول باشد اما در JSON نام همه خصوصیات (property) ها باید داخل علامت نقل قول “” قرار بگیرد.

 

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

می توانید آرایه ها را بصورت زیر به یک رشته JSON تبدیل کنید که هم به راحتی می شود ذخیره کرد و هم اینکه آن را با AJAX یا API‌ به سمت سرور ارسال کرد.

خروجی مثال بالا شبیه به این خواهد بود :

توجه: از تابع eval() برای ارزیابی داده JSON (شامل تعریف توابع در رشته جاوا اسکریپت و سپس تبدیل به قبل به یک تابع قابل اجرا با متد eval()) استفاده نکنید. چرا که این کار به نفوذگر اجازه می دهد کدهای مخرب جاوا اسکریپت را در اپلیکیشن شما تزریق کند.

 

امیدواریم در این بخش آموزش جاوا اسکریپت, از آموزش JSON در جاوا اسکریپت نهایت استفاده را برده باشد.

هر سوالی داشتید ، از قسمت نظرات ارسال کنید . سریعا ، پاسخگوی سوالات شما هستیم .

موفق باشید.

حسن شفیعی توسعه دهنده وب و موبایل مدیر سایت علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم. اگر نیاز به برنامه نویس برای انجام پروژه و نوشتن اسکریپت های سمت وب, اپلیکیشن های اندروید و ios, پیدا کردن راه حل توسعه و غیره داشتید حتما از طریق تماس با ما/ واتساپ/ تلگرام بهم پیام بدید. برایتهیه هاست مطمین و پرسرعت کلیک کنید
مطالب زیر را حتما بخوانید
دیدگاه کاربران

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دوره های آموزشی