Site icon آکادمی آمانج

جیسون (JSON) چیست؟ (راهنمای جامع)

jason javascript

طراحی سایت امروزه پیوند بسیار محکمی با زبان های برنامه نویسی مثل جاوا اسکریپت برقرار کرده است به طوری که بعید است شما سایتی با دیزاین حرفه ای و UI خوب را ببینید که برنامه نویس جاوااسکریپتی پشت آن نباشد.
یکی از زیرشاخه های زبان برنامه نویسی جاوا اسکریپت که در نشان دادن ساختمان داده های ساده و آرایه ها به کار برده می‌شود json می‌باشد.
در این بخش از سری مقالات آموزش جاوااسکریپت آکادمی آمانج من قصد دارم به طور کامل به بحث json پرداخته و در مورد قواعد جیسون، داده ها، فایل ها، اشیاء و آرایه ها صحبت کنم و دلایل استفاده از جیسون، محدودیت ها و ابزارهای آن را نیز خدمت شما ارائه کنم.
اگر هم با زبان برنامه نویسی جاوا اسکریپت به طور کامل آشنایی ندارید به شما توصیه می‌کنم محتوای «چرا یادگیری جاوا اسکریپت ضرورت دارد؟» را به دقت مطالعه بفرمایید.

جیسون (JSON) چیست؟

جیسون یا جیسان که مخفف عبارت JavaScript Object Notation می باشد به معنای نمادگذاری اشیا در جاوا اسکریپت می باشد. JSON یک قالب استاندارد و سبک وزن برای ذخیره و انتقال داده ها می‌باشد درست مانند XML. سخت شد؟ اصلا نگران نباشید!

فرض کنید شما می‌خواهید یک دوچرخه خریداری کنید اما فروشنده دوچرخه به جای اینکه آن را به شما بفروشد! خصوصیات و ویژگی های مهمی از دوچرخه خود به شما ارائه می‌دهد تا شما بتوانید آن را با ابزارهایی که در اختیار دارید به طور کامل بسازید.
این ویژگی ها می‌تواند به صورت جفت های خصوصیت – کلید برای شما ارسال شود: جنس بدنه، سایز، رنگ، دنده ها و چند مورد دیگر.

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

نکته:
‌ این موضوع به عنوان بارگزاری asynchronous در دنیای طراحی سایت و برنامه نویسی شناخته می‌شود.

 


اگر با زبان نشان گذاری XML آشنایی ندارید مطالعه مقاله «راهنمای جامع زبان نشانه گذاری xml» به شما توصیه می‌شود.


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

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

قواعد coding در جیسون

همانطور که در کد زیر میبینید در جیسان موارد زیر باید رعایت شود:

 

"employees":
[ {
"name":"ali",
"email" :"alisakha1998@gmail.com",
"age" : 24
}'
{
"name":"mehrad",
"email":"mehradaliabadi@gmail.com",
"age":23

}
]
}

 

 

داده ها در جیسون

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

 "name":"ali" 

اشیا در جیسون

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

 

  {"name":ali" , "lastname":"rahbar"} 

 

آرایه ها در جیسون

آرایه‌های JSON درون براکت نوشته می‌شوند. درست مانند یک فایل جاوااسکریپت، آرایه‌ می‌تواند شامل اشیا باشد.

"employees":[
{"firstName":"kamran", "lastName":"aziz"},
{"firstName":"soheil", "lastName":"hosseini"},
{"firstName":"mina", "lastName":"vadood"}
] 

 

فایل های جیسون

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

 

محدودیت های جیسون

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

شمای کلی جیسون

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

عدم وجود نوع داده

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

نداشتن توضیحات بیشتر (کامنت)

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

توضیح زیاد

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

 

ابزارهای جیسون

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

 

فرمت کننده جیسون: JSONLint می تواند کدهای دلخواه با فرمت داده ای جیسون شما را فرمت کرده و آنها را اعتبار سنجی کند.

تبدیل کننده فایل های جیسون: اگر نیاز دارید تا فایل های با فرمت جیسون را به فرمت دیگری تبدیل کنید و در اختیار افراد دیگری قرار دهدی به شما توصیه می کنم ار وبسایت Convertcsv استفاده کنید. با استفاده از این سایت شما می توانید به راحتی فایل های جبسون را به csv و یا xml تبدیل کنید.

زیبا ساز فایل های جیسون: اگر شما هم جز افرادی هستید که به دنبال اجرای منظم تر و زیباتر کدهای با فرمت داده ای جیسون هستید Prettydiff می تواند یک کمک بسیار بزرگ برای شما محسوب شود.


آیا باید از جیسون استفاده کنم؟

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

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

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

 

جمع بندی

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

مشاهده نسخه گرافیکی و کامل