JSON چیست؟
JSON واژه اختصاری عبارت JavaScript Object Notation به معنای “نشانهگذاری شئ جاوا اسکریپت” است. البته به معنای آن توجه زیادی نکنید چون معمولا ترجمه این عبارات مفهوم دقیقی ارائه نمیدهند.
جیسون یک قالب سبک وزن (lightweight) برای ذخیره و حملونقل داده است. شما با این فرمت میتوانید اطلاعات را در قالب متن جابه جا کنید و حتی از بیرون از شبکه انتقال دهید. فایلهای جیسون هم برای انسان و هم برای کامپیوترها خوانایی دارند.
JSON برای تبادل اطلاعات بین سرور و مرورگر فرمت سبک و مناسبی است. اما تنها فرمت موجود برای این کار نیست و XML هم در این زمینه وجود دارد. اما چرا بعضیها JSON را به XML ترجیح میدهند؟ شاید بخاطر خوانایی بیشتر آن نسبت به XML و محبوبیت زبان JavaScript است.
جیسون غالباً برای ارسال داده از یک وب سرور به یک صفحه وب استفاده میشود.
جیسون خود توصیف (self-describing) است یعنی فهم کدهای آن به دلیل ساختار نام/مقدار (name/value) بسیار آسان است.
مزیت جیسون
JSON نخستین قالبی نیست که از جفتهای خصوصیت-کلید برای تبادل دادهها بر روی اینترنت استفاده میکند. فناوریهای مختلفی در این زمینه وجود دارند که ممکن است حتی برخی از آنها مانند XML را نیز بشناسید. جیسون و ایکسامال تقریباً به روش مشابهی عمل میکنند. پس چرا باید جیسون را بر ایکسامال ترجیح بدهیم؟
در وب امروز بارگذاری asynchronous (غیر همزمان و یا در مواردی نامتقارن نامیده میشود) دادهها بسیار مهم است. به بیان دیگر صفحههای وب میخواهند قادر باشند تا دادهها را بدون نیاز به بارگذاری مجدد کل صفحه به کاربر ارسال نمایند. نتیجه چنین امکانی، ایجاد تجربه مرور روانتر و مطلوبتر برای کاربر است. جیسون برای ارسال و دریافت غیر همزمان دادهها عالی است، زیرا ساده است و استفاده از آن آسان است.
جیسون معمولاً همراه با جاوا اسکریپت شناسایی میشود که یکی از رایجترین زبانهای برنامهنویسی دنیا است. از آنجا که جیسون زیرمجموعهای از جاوا اسکریپت است، برای کسانی که جاوا اسکریپت را میدانند نیاز به یادگیری موارد زیادی در زمان استفاده از جیسون وجود نخواهد داشت.
دلیل دیگر برای این محبوبیت جیسون آن است که خوانایی آن بالاتر از XML است. البته وقتی برای مدتی برای با ایکسامال کار کنید، استفاده از آن را نیز آسان خواهید یافت؛ اما نگاهی گذرا به فایل ایکسامال کاربر را با انبوهی از تگها و موارد توضیحی روبرو میکند. در مقابل جیسون تمیزتر است و افراد مبتدی آن راحتتر درک میکنند. از طرف دیگر با انواع دادههای مقدماتی خود تا حدودی انعطافپذیری بیشتری ارائه میکند.
ساختار کدهای JSON
زمانی که با JSON کار میکنید، احتمالاً آبجکتهای JSON را در فایل json. میبینید؛ اما آنها میتوانند بهعنوان آبجکت یا رشته JSON در متن برنامه هم وجود داشته باشند. هر آبجکت JSON تقریباً چیزی شبیه زیر است:
{ "first_name" : "Sammy", "last_name" : "Shark", "location" : "Ocean", "online" : true, "followers" : 987 }
این مثال نسبتاً کوتاه از جیسون است و JSON میتواند خطوط زیادی داشته باشد. دادهها در جفتهایی بهشکل نام/مقدار (Name/Value) قرار میگیرند و با علامت کاما (Comma) از یکدیگر جدا میشوند.
علامتهای { } نگهدارنده آبجکتها و [ ] نیز نگهدارنده آرایهها خواهند بود. بیشتر دادههای استفادهشده در JSON در یک آبجکت JSON کپسوله میشوند. جفتهای Key-value یک دو نقطه (:) میان خود دارند؛ مانند “key” : “value”. هر جفت Key-value هم با یک کاما از یکدیگر جدا میشوند؛ مثلاً “key” : “value”, “key” : “value”, “key”: “value”.
JSON بر اساس دو ساختار ساخته شده:
- یک مجموعه از زوجهای نام/ارزش (name/value). در زبانهای گوناگون این ساختار یک شیء (object) ، ساختار (struct) ، دیکشنری (dictionary) ، جدول مخلوط (hash table) ، لیست کلیددار (keyed list) یا آرایه انجمنی (associative array) شناخته میشود. • یک لیست منظم از ارزشها. در بسیاری از زبانها این ساختار یک آرایه ( array) ، بردار (vector) ، لیست (list) ، یا دنباله (sequence) شناخته میشود.
- اینها ساختار دادههای عمومی هستند. همه زبانهای برنامهنویسی مدرن یکی از آنها را پشتیبانی میکنند. منطقی است که یک فرمت داده قابل استفاده توسط زبانهای برنامهنویسی مختلف بر مبنای این ساختارها باشد.
فواید استفاده از JSON
- جمع و جور و در فرمتی کارآمد: ساختار JSON روشی آسان و سریع برای تجزیه اطلاعات ارائه میدهد.
- خوانا بودن: هم انسان و هم کامپیوتر میتواند در زمان کم و با کمترین ارور با این ابزار ارتباط برقرار کند.
- فرمت انعطاف پذیر: JSON گستره بسیار وسیعی از نوع داده ها را دربر میگیرد که میتواند در توصیف ساختار بسیاری از داده ها استفاده شود.
چرا باید از JSON استفاده کنیم؟
بعد از پیشرفت و افزایش تعداد سایت هایی که از تکنولوژی AJAX استفاده میکنند، قابلیت نمایش داده ها در زمان کم و بصورت غیر همزمان (asynchronously) اهمیت بسیار زیادی پیدا کرده است.
تکنولوژی JSON این مشکل را با استفاده از ساختار خوانا و ساده خود حل کرده و به کمک برنامه نویس های وب آمده است.
مثالی از JSON
مثال زیر یک شئ با نام “employees” به معنای کارمندان تعریف کرده است که مقدار این شی حاوی آرایهای با ۳ عنصر است. که هر عنصر آرایه یک شئ است که مشخصات یک کارمند را دربر میگیرد.