تک دیک

واژه نامه و مجله آموزشی کامپیوتر و فناوری

جی سان JSON

جی سان یا JSON چیست؟

جی سان (JSON) نوعی فرمت داده متنی است که در آن از متون قابل خواندن توسط انسان برای نگه داری و انتقال داده ها استفاده می‌شود. واژه JSON خلاصه شده عبارت JavaScript Object Notation به معنای نشانه گذاری اشیاء جاوا اسکریپت می‌باشد.

جی سان را می‌توان یک فرمت متنی ساده و سبک برای نگه داری و انتقال داده ها به صورت سازماندهی شده به شمار آورد که درک محتوای آن برای انسان کار آسانی است و علاوه بر این ماشین ها هم به آسانی قادر به ایجاد کردن و تجزیه آن هستند. در این فرمت، داده ها در قالب مجموعه‌ای از جفت‌های نام – مقدار (معادل با آبجکت، آرایه انجمنی یا جدول درهم سازی در زبان های برنامه نویسی مختلف) و لیستی مرتب از مقادیر (معادل با آرایه ها) سازماندهی می‌شوند.

پیدایش JSON همان‌طور که از نامش انتظار می‌رود به زبان جاوا اسکریپت و اوایل دهه 2000 میلادی بازمی‌گردد. با اینحال به دلیل کارایی بالای این فرمت، اغلب زبان‌های امروزی دارای کدهای لازم برای ایجاد و تجزیه داده ها در قالب JSON هستند. محبوبیت این فرمت نیز مدیون فعالیت‌های داگلاس کراکفورد (Douglas Crockford) می‌باشد.

گفتنی است نوع رسانه (Media Type یا MIME Type) مختص به JSON به صورت application/json می‌باشد و پسوند استاندارد فایل هایی که به منظور نگه داری داده ها در این قالب استفاده می‌شود نیز به شکل .json است.

لوگوی جی سان JSON
لوگوی JSON

داده ها در JSON

همان‌طور که گفته شد در این فرمت داده ها به صورت مجموعه‌ای از جفت‌های نام – مقدار و همچنین آرایه‌ای از مقادیر سازماندهی می‌شوند. به عبارت دقیق‌تر، جی سان از انواع داده های اصلی زیر پشتیبانی می‌کند که امکان استفاده تو در توی آن‌ها نیز وجود دارد:

  • اعداد
  • رشته ها (String): دنباله ای از کاراکترها که در میان “” قرار می‌گیرند.
  • بولین (Boolean): با مقادیر true یا false
  • null: به معنای بدون مقدار
  • آرایه (Array): لیستی مرتب از مقادیر که در میان [] قرار می‌گیرند و با کاما از هم جدا می‌شوند.
  • آبجکت یا شئ (Object): مجموعه‌ای نامرتب از جفت‌های نام (name) و مقدار (value) که در میان {} قرار می‌گیرد و در آن نام ها که به ویژگی (attribute) نیز موسوم هستند به صورت رشته ظاهر می‌شوند. هر نام با نماد : (یا کلن) از مقدار منتسب به خود جدا می‌شود و هر جفت نام و مقدار نیز توسط کاما از یکدیگر جدا می‌شوند.

یک مثال ساده

در تصویر زیر می‌توانید نمونه‌ای از نمایش اطلاعات شخصی یک فرد در قالب JSON را مشاهده کنید:

جی سان JSON
مثالی از نمایش اطلاعات یک شخص در قالب JSON

همان‌طور که در این مثال می‌بینید مجموعه‌ای از جفت‌های نام (یا ویژگی) و مقدار، فرد موردنظر را براساس ویژگی‌هایی مثل اسم کوچک و فامیل، شماره ملی، جنسیت و … توصیف می‌کند. نام ها مثل “firstname” و “lastname” و “nationalID” به شکل رشته آمده‌اند و مقادیر موجود در مثال هم به اشکال مختلفی نظیر رشته (مانند “John” برای “firstname” و “Smith” برای “lastname”)، عدد (مانند 123456789 برای “nationalID” و 27 برای “age”)، مقدار بولین (مانند true برای “married”) و null (برای “job”) ظاهر شده‌اند. مقدار منتسب به phone نیز به صورت یک آرایه شامل تعدادی شماره تماس و نوع آن (مربوط به منزل، موبایل و …) می‌باشد که هرکدام از آن‌ها یک شئ با دو ویژگی type و number همراه مقدار منتسب به آن‌هاست.

کاربردهای جی سان

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

JSON و JavaScript

از آنجایی که جی سان یک فرمت متنی است گزینه مناسبی برای انتقال داده ها بر بستر یک شبکه می‌باشد. زمانی که داده ها در این فرمت به صورت یک عبارت متنی توسط کلاینت دریافت می‌شود به منظور استفاده ابتدا لازم است تجزیه شود. در اغلب زبان ها علاوه بر قابلیت تبدیل داده ها به این فرمت، امکان تجزیه آن نیز فراهم شده است. برای مثال در زبان جاوا اسکریپت برای تجزیه رشته ای با فرمت جی سان و تبدیل آن به یک آبجکت جاوا اسکریپت از متد JSON.parse() به شکل زیر استفاده می‌شود:

var obj = JSON.parse(json_str);

که در آن json_str رشته ای با فرمت جی سان است. در صورتی که این رشته حاوی همان متن موجود در مثال فوق باشد برای دسترسی به داده های آن می‌توانید از شیوه مرسوم کار با اشیا در زبان جاوا اسکریپت (برای مثال obj.nationalID جهت دسترسی به مقدار شماره ملی) کمک بگیرید.

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

وبسایت json.org

امیرحسین شهسواری

عاشق دنیای رایانه و فناوری به خصوص برنامه نویسی هستم؛ یادگرفتن و البته یاد دادن چیزای جالبی که یاد گرفتم باعث خوشحالیم میشه و از اولویت‌های اصلی زندگیم به حساب میاد. از مدیریت و نوشتن در تک دیک هم واقعا لذت می‌برم :)

4 thoughts on “جی سان JSON

  • masoud

    سلام لطفا راهنماییم بفرمایید
    چطور میتونم از فایل جی سان اطلاعات رو دسته بندی و استخراج کنم بر اساس اینکه مثلا اگر اطلاعات یک سری اشخاص که در شهرهای مختلف زندگی میکنن تمامی اشخاصی که در تهران زندگی میکنند یا در مشهد و … و اینها رو بتونم در پروژه ام جدا جدا صدا بزنم و کلیک تعریف کنم. ممنون

    پاسخ دادن
    • امیرحسین شهسواری

      سلام؛
      سوالتون خیلی کلی هست و متأسفانه پاسخش هم کوتاه نیست. خوشبختانه در بسیاری از زبان های برنامه نویسی امکان ایجاد و خواندن فایل ها و متون دارای فرمت JSON وجود دارد که با جستجو در میان داکیومنت های زبان موردنظر می تونید بهش دسترسی داشته باشید.

      پاسخ دادن
  • مصطفی

    سلام،
    من یک فایل لغت نامه تخصصی طی سالها تهیه کردم و به صورت Json هم درآوردم، حالا می‌خوام اپلیکیشن لغت نامه بنویسم شما چه محیطی رو به من پیشنهاد میکنید،
    البته Android studio رو نصب کردم ولی completion code نرم افزار کارنمیکنه!!!!
    [مابقی دیدگاه به دلیل دارا بودن اطلاعات شخصی حذف شده‌اند]

    پاسخ دادن
    • امیرحسین شهسواری

      سلام مصطفی گرامی؛
      اگر به دنبال ساخت اپلیکیشن برای اندروید هستید طبیعتا پیشنهاد اصلی همون Android Studio هست که خودتون فرمودید.

      پاسخ دادن

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

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