JSON چیست؟ آموزش JSON

JSON یا JavaScript Object Notation شیوه‌ای متنی از نگهداری اطلاعات ساخت‌یافته است. با استفاده از جی‌سن می‌توانید اطلاعات مختلف از جمله آرایه‌ها، رشته‌ها، اعداد، متغیرهای بولی و اشیا را به شکلی قابل درک برای انسان و قابل درک برای ماشین ذخیره‌سازی کنید و انتقال دهید.

جاوااسکریپت

شیوه‌ی نگهداری اطلاعات JSON به دلیل وجود به صورت پیش‌فرض در زبان جاوااسکریپت به ویژه در هنگام طراحی سایت با انواع زبان‌ها از جمله طراحی سایت با php و ASP.NET مورد استفاده قرار می‌گیرد.

در ادامه یک مثال از شیوه‌ی نگهداری اطلاعات JSON را مشاهده می‌کنید:

در مثال بالا آرایه‌ای از دو شیء با شیوه‌ی JSON در یک متغیر ذخیره‌سازی شده است.

قوانین نگهداری داده‌ها با فرمت JSON عبارتند از:

  • اشیا( Object ) در JSON باید میان آکولاد «{}» قرار بگیرند.
  • اعضای شیء با علامت ویرگول«,» از هم جدا می‌شوند.
  • آرایه‌ها در JSON باید میان کروشه «[]» قرار بگیرند.
  • اعضای آرایه با علامت ویرگول «,» از یکدیگر جدا می‌شوند.
  • برای تعریف یک عضو در یک شیء JSON، ابتدا «نام عضو» سپس دونقطه«:» و در پایان «مقدار» نوشته می‌شود.
  • نام اعضای شیء می‌بایست داخل دو گیومه «”» قرار بگیرند.
  • مقدار می‌تواند یکی از انواع «عدد»، «رشته»، «بولی»، «آرایه»، «شیء» و «نال» را بپذیرد. سایر انواع داده باید به صورتی دیگر ذخیره شوند.
  • انواع رشته‌ای باید داخل دو گیومه «”» قرار بگیرند.
  • بسته به زبان مبدا و مقصد انواع داده‌ی دیگری نیز ممکن است قابل پذیرش باشند.

زبان جاوااسکرپیت بسیاری از محدودیت‌های موجود در استاندارد JSON چشم‌پوشی می‌کند. برای مثال انواع داده در جاوااسکریپت به تمامی انواع داده‌ی قابل قبول در این زبان گسترش می‌یابد. قرار دادن نام اعضای شیء میان گیومه الزامی نیست. استفاده از گیومه یا آپستروف «’» برای رشته‌ها اختیاری است و بسیاری آزادی‌های دیگر که تنها در این زبان قابل استفاده است.

چنانچه بخواهیم از JSON برای انتقال اطلاعات میان زبان‌های مختلف استفاده کنیم، رعایت قوانین گفته شده در جهت عملکرد صحیح الزامی خواهد بود.

به مثالی کامل‌تر از نگهداری اطلاعات به فرمت JSON که تمامی قوانین در آن رعایت شده است توجه کنید:

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

استفاده از JSON در جاوااسکریپت بسیار آسان است. برای خواندن اطلاعات ذخیره شده در یک متغیر به شکل زیر عمل می‌کنیم:

در زبان جاواسکریپت، برای خواندن اعضای اشیا، هم با استفاده از نقطه «.» و هم به شکل آرایه «[]» می‌توان به اعضای آن دسترسی پیدا کرد.

تبدیل JSON به رشته

برای اینکه بتوان اطلاعات را به شکل JSON منتقل یا ذخیره‌سازی کرد، لازم است تا پیش از انتقال یا ذخیره‌سازی به رشته تبدیل شود و پس از دریافت یا خواندن مجددا به اطلاعات تبدیل شود.

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

برای تبدیل آرایه یا اشیا در زبان‌های دیگر برنامه‌نویسی نیز اغلب دستورات یا کتابخانه‌هایی موجود است. برای مثال در زبان php دستور json_encode به این منظور تعبیه شده است.

تبدیل رشته به JSON

پس از انتقال رشته‌ی JSON یا پس از بارخوانی آن از پایگاه داده، لازم است تا این رشته به شیئ یا آرایه تبدیل شود. انجام این کار در جاوااسکریپت به شکل زیر انجام می‌شود:

دستور JSON.parse به رعایت قوانین JSON حساس است و اگر یکی از این قوانین به درستی در رشته رعایت نشده باشد، این دستور با خطا مواجه خواهد شد.

JSON در jQuery

در جی کوئری علاوه بر دستورات jQuery.getJSON و jQuery.parseJSON که برای ارسال درخواست AJAX و تبدیل رشته‌ی JSON به شیء کاربرد دارند. یک ویژگی مفید در ارسال درخواست‌های Ajax در jQuery تعبیه شده است. به این صورت که اگر نوع محتوای دریافتی «Content-Type» از نوع «application/json» باشد، جی‌کوئری به صورت خودکار آن را از حالت رشته به متغیر تبدیل می‌کند.

ایجاد خروجی از نوع JSON در php به شکل زیر امکان‌پذیر است:

انتقال اطلاعات حجیم

زبان‌های نشانه‌گذاری مثل JSON و XML برای انتقال اطلاعات با حجم محدود اغلب مورد استفاده قرار می‌گیرند. ولی اگر حجم اطلاعات زیاد باشد، ممکن است استفاده از این روش‌ها، کارایی لازم را نداشته باشد. در چنین شرایطی ممکن است گزینه‌های دیگر مثل پایگاه داده‌های فایلی نظیر SQLite مورد توجه قرار بگیرند.

۲ نظر در مورد «JSON چیست؟ آموزش JSON»

  • زینب می‌گوید:

    سلام
    من یه ارایه رو تو پی اچ پی به رشته ی جیسون تبدیل کردم و تو جاوا اسکریپت خوندم
    اما میخام بهم به جاای رشته تو خروجی عدد بده
    از تابع JSON.parse هم برای اینکار استفاده می کنم جواب نمیده
    اگه کسی میدونه راهنماییم کنه

    • با سلام
      یا باید موقع ارسال اطلاعات از php دقت کنید که نوع داده‌ها عددی باشند یا موقع پردازش در سمت جاوااسکریپت آن‌ها را به صورت صریح با استفاده از کلاس Number به عدد تبدیل کنید

دیدگاهتان را بنویسید

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

مشاوره رایگان تلفنی
۶۵ ۸۹ ۹۶ ۸۸ - ۰۲۱
۹۱ ۸۴ ۹۶ ۸۸ - ۰۲۱