JSON چیست وچه کاربردی دارد ؟

JSON چیست وچه کاربردی دارد ؟

JSON چیست؟

جیسون معادل اختصاری عبارت JavaScript Object Notation به معنی «نمادگذاری اشیا در جاوا اسکریپت» است. جیسون یک قالب استاندارد باز است که امکان تبادل داده‌ها در وب با استفاده از جفت‌های خصوصیت-کلید را ممکن ساخته است. این توضیح ممکن است تا حدودی پیچیده به نظر بیاید؛ پس در ادامه آن را اندکی بیشتر توضیح می‌دهیم.

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

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

جیسون نیز در زمان ارسال داده‌ها بر روی اینترنت به همین ترتیب عمل می‌کند.

مثالی از JSON :

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

مثال زیر یک شئ با نام “employees” به معنای کارمندان تعریف کرده است که مقدار این شی حاوی آرایه‌ای با ۳ عنصر است. که هر عنصر آرایه یک شئ است که مشخصات یک کارمند را دربر می‌گیرد.

قواعد نحوه نوشتن جیسون:

  • داده‌ها در جفت‌هایی بصورت نام/مقدار (name/value) قرار می‌گیرد.
  • داده‌ها با علامت کاما از هم جدا می‌شوند.
  • علامت‌های { } اشیاء را نگه می‌دارند.
  • علامت‌های [ ] آرایه‌ها را نگه می‌دارند.

 

دلیل برتری JSON نسبت به XML:

همانطور که گفته شد جیسون یکی از زیرشاخه های زبان برنامه نویسی جاوا اسکریپت می‌باشد و به همین دلیل کسانی که به JS مسلط هستند نیاز به یادگیری موارد زیادی در زمان استفاده از جیسون را ندارند.

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

از طرف دیگر XML در زمان parse شدن در جاوا اسکریپت ابهامات زیادی ایجاد می‌کند. تبدیل کردن XML به شی جاوا اسکریپت نیازمند صرف صدها و یا حتی هزاران خط کد بوده و از طرفی شما باید کدها را براساس اشیایی که Parse می شوند شخصی سازی کنید. تبدیل کردن جیسون به شی جاوا اسکریپت تنها نیازمند یک خط کد است و نیاز به اطلاعاتی که درباره شیئی که parse خواهد شد ندارد.

نشانه‌گذاری شئ جاوا اسکریپت:

قالب JSON از لحاظ نحوی با قالب کد‌های ایجاد اشیاء در جاوااسکریپت یکسان است.

به دلیل این شباهت، یک برنامه جاوااسکریپت می‌تواند به راحتی داده‌های جیسون را به اشیاء بومی جاوااسکریپت تبدیل کند.

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

داده‌های JSON:

داده‌های JSON بصورت زوج‌های نام/مقدار (name/value) نوشته می‌شوند، دقیقا مانند خصوصیات شئ جاوااسکریپت.

یک زوج نام/مقدار شامل یک فیلد نام (درون جفت کوتیشن)، و به دنبال آن یک علامت دونقطه، و بعد از آن مقدار، است.

“firstName”:”John”

نام‌ها (names) در جیسون باید درون جفت کوتیشن قرار گیرند، اما نام‌های جاوااسکریپت نه.

اشیاء JSON :

اشیاء JSON درون پرانتز نوشته می‌شوند.

دقیقا مانند جاوااسکریپت، اشیاء می‌توانند حاوی چندین زوج نام/مقدار (name/value) باشند.

{“firstName”:”John”, “lastName”:”Doe”}

آرایه‌های JSON:

آرایه‌های JSON درون براکت نوشته می‌شوند.

درست مانند جاوااسکریپت، آرایه‌ می‌تواند حاوی اشیاء باشد.

در مثال بالا، شئ “employees” شامل یک آرایه است که این آرایه شامل ۳ شئ می‌باشد.

هر شئ یک رکورد از یک شخص است (با یک نام و نام خانوادگی).

 فایل های JSON :

داده های جیسون در فایل هایی ذخیره می شوند که با پسوند.json به پایان می رسند. این موضوع باعث می شود تا فایل های جیسون کاملا برای انسان ها نیز خوانا باشند. در واقع این فایل ها اطلاعات را به صورت متن ساده ذخیره کرده اند که به سادگی باز می شود و شما می توانید آن را اصلاح کنید. این موضوع دقیقا عامل اصلی همکاری گسترده جیسان با بسیاری از اپلیکیشن ها می باشد. چرا که هر زبانی که شما بیان کنید می تواند به سادگی این اطلاعات را بخواند و پردازش هایی را بر روی آن انجام دهد و به سادگی نیز می توان آنها را در سراسر اینترنت ارسال کرد.

محدودیت های JSON :

با وجود آنکه فرمت داده ای جیسون یک قالب مختصر و بسیار ساده دارد اما نقاط ضعفی در این فرمت داده ای وجود دارد که من در ادامه به مهم ترین آن ها اشاره خواهم کرد.

1.شمای کلی جیسون:

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

2.عدم وجود نوع داده:

این موضوع به این معنا است که توسعه دهندگان مجبور هستند تا برای نمایش دادن تاریخ از رشته ها استفاده کنند.

این موضوع باعث می شود تا حاشیه نویسی برای کدها غیر ممکن باشد و عملا کد، خوانایی کمی برای دیگر برنامه نویسان داشته باشد اگر شما قصد دارید چنین حاشیه نویسی هایی را برای فایل های خود داشته باشید مجبور هستید که فایل جدیدی تولید کنید.

3.توضیح زیاد:

با وجود اینکه فرمت داده ای جیسون بسیار کوتاه تر از XML می باشد اما با این حال نمی توان گفت که مختصرترین روش برای نمایش داده ها است. شما می توانید برای خدمات با حجم بالا و یا برخی از اهداف خاص از فرمت های داده ای کوتاه تر و مختصرتر استفاده کنید.

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

یک استفاده رایج از جیسون برای خواندن داده‌ها از وب سرور، و نمایش آن در صفحه وب است.

برای سادگی، می‌توان کدهای جیسون را با استفاده از یک رشته (String) به عنوان ورودی نشان داد.

ابتدا یک رشته (متن) جاوااسکریپت که حاوی یک کد جیسون است را ایجاد کنید:

حال از یک تابع داخلی جاوااسکریپت به نام ()JSON.parse برای تبدیل این رشته (string) به یک شئ جاوااسکریپت استفاده کنید.

var obj = JSON.parse(text);

در نهایت، از این شئ جدید جاوااسکریپت در صفحه خود استفاده کنید.

حرف آخر :

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

امیدواریم که  خواندن این مقاله برای شما کاربردی باشد و دیدگاهتان درمورد این مقاله را با ما به اشتراک بگذارید.