JSON: فرمت محبوب تبادل داده در وب

تصویر یاسر دهقان

یاسر دهقان

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

از همان ابتدا، فرمتی که قرار بود برای انتفال این داده ها استفاده شود مهم بود و مانند وب، بهترین فرمت‌ها استانداردهای باز بودند که هر کسی می‌توانست از آن‌ها استفاده کرده و در توسعه آن‌ها مشارکت کند. XML در اوایل محبوبیت زیادی پیدا کرد، زیرا شبیه HTML، پایه و اساس وب بود. اما XML دست و پاگیر و گیج‌کننده بود. این جا بود که یک فرمت ساده و خوانا به نام JSON به وجود آمد.

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

 

JSON چیست ؟

JSON (JavaScript Object Notation) یک فرمت تبادل داده سبک است که برای ارتباط بین وب‌سایت‌ها و سرورها استفاده می‌شود. این فرمت بر اساس استاندارد های زبان برنامه‌نویسی JavaScript طراحی شده و معمولاً برای انتقال داده‌ها در برنامه‌های وب استفاده می‌شود.با اینکه این این فرمت طبق استاندارد های JavaScript طراحی شده است ولی این فرمت یک فرمت متنی و مستقل از زبان برنامه نویسی می باشد.

تاریخچه این فرمت به اوایل دهه 2000 برمی‌گردد، زمانی که XML (eXtensible Markup Language)  پرکاربردترین فرمت تبادل داده بین سیستم‌ ها بود، اما به عنوان فرمتی دست و پاگیر و سخت برای تجزیه و تحلیل شناخته می‌شد. از سوی دیگر، JSON به گونه‌ای طراحی شد که خواندن و نوشتن آن آسان باشد، که این ویژگی آن را برای توسعه‌دهندگان جذاب‌تر می‌کرد.

این فرمت به‌طور خاص برای جایگزینی XML ایجاد نشده بود، اما مزایای آن در سادگی و سهولت استفاده منجر به پذیرش گسترده آن در زمینه‌هایی شد که XML به‌طور سنتی استفاده می‌شد، به‌ویژه در توسعه وب و APIها.

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

A number of people independently discovered that JavaScript’s object literals were an ideal format for transmitting object-oriented data across the network. I made my own discovery in April of 2001 when I  was CTO of State Software. —–Douglas Crockford

چر JSON اینقدر فراگیر شده است ؟

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

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

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

 

JSON example
نمونه JSON

 

XML example
نمونه XML

با مقایسه این دو فرمت می توان دید که فرمت XML خوانایی پایین تری برای انسان دارد و کار با آن سخت تر از JSON است.

 

گرامر JSON

در JSON به دو شکل می‌توان داده‌ها را نمایش داد:

  • Object (شیء)
  • Array (آرایه)

اگر بخواهیم داده را به شکل شیء نمایش دهیم، از علامت {} استفاده می‌کنیم و درون آن جزئیات داده به صورت کلید:مقدار وارد می‌شود.

  • کلیدها حتماً باید درون “” نوشته شوند.
  • مقدارها می‌توانند عدد، رشته، شیء، آرایه، null یا boolean باشند.
  • رشته‌ها حتماً باید درون “” باشند.
  • عددها باید به فرمت جاوااسکریپت نوشته شوند.
  • مقدارهای boolean به شکل true یا false نوشته می‌شوند.
  • مقدار null به شکل null نوشته می‌شود.

برای اطلاعات بیشتر می‌توانید به سایت json.org مراجعه کنید.

 

ارسال دیدگاه