JSON مخفف JavaScript Object Notation است و JSON یک فرمت سبک وزن برای ذخیره و انتقال داده و JSON اغلب زمانی استفاده می شود که داده ها از یک سرور به یک صفحه وب ارسال می شود. self-describing و به راحتی قابل درک است
قراردادهای مورد استفاده ی JSON برای تمامی برنامه نویسان از جمله برنامه نویس C، C++، Java، Python، Perl شناخته شده است که به شرح زیر می باشد:
- JSON مخفف JavaScript Object Notation است.
- فرمت آن برای اولین بار توسط Douglas Crockford معرفی شد.
- برای انسان خوانا بوده و ویژه ی انتقال داده طراحی شده است.
- از زبان اسکریپت نویسی JavaScript مشتق شده است.
- پسوند فایل های با فرمت جی سن .json می باشد.
- Media type این فرمت انتقال داده application/json است.
- شناسه ی متحدالشکل نوع (UTI) آن public.json است.
موارد استفاده ی JSON
- به هنگام نوشتن برنامه های تحت وب مبتنی بر جاوا اسکریپت که افزونه هایی برای مرورگر و وب سایت ها را شامل می شوند بکار می رود.
- برای serialize کردن و انتقال داده های ساخت یافته از طریق اتصال شبکه بکار می رود.
- عمدتا برای انتقال داده بین سرور و برنامه های تحت وب بکار می رود.
- Web service ها و API ها از فرمت JSON برای ارائه ی داده های public بهره می گیرند.
- تمامی زبان های برنامه نویسی روز از آن پشتیبانی می کنند.
ویژگی های JSON
- خواندن و نوشتن در آن آسان است.
- یک فرمت متنی تبادل داده سبک و کم حجم است.
- با اینکه از زبان JavaScript مشتق شده، از این زبان کاملا مستقل است و مفسر (parser) آن برای تمامی زبان ها موجود می باشد.
نمونه ی ساده از JSON
مثال زیر نحوه ی استفاده از JSON را برای ذخیره ی اطلاعات مربوط به مجموعه ای از کتاب ها بر اساس موضوع و ویرایش هر یک، نمایش می دهد:
{
"employees":[
{"firstName":"John", "lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter", "lastName":"Jones"}
]
}
مقایسه JSON با XML
XML یا زبان نشانهگذاری توسعهیافته راهی برای ذخیره دادههای دردسترس است که آن را هم انسان و هم ماشین میتواند بخواند. فرمت یا قالب XML برای بسیاری از زبانهای برنامهنویسی دردسترس است. در اکثر مواقع، XML شباهت بسیار زیادی به JSON دارد؛ اما درمقابل، به متن بیشتری هم نیاز دارد و خواندن و نوشتن در XML طولانیتر و وقتگیرتر است.
نکته دیگر اینکه XML باید با تجزیهکننده XML تجزیه شود؛ اما JSON را میتوان با تابع استاندارد تجزیه کرد. شایان ذکر است که برخلاف JSON، در XML نمیتوان از آرایهها استفاده کرد. در اینجا، ابتدا به نمونهای از فرمت XML و سپس به همان دادههای ارائهشده در JSON نگاهی میاندازیم:
<users>
<user>
<username>SammyShark</username> <location>Indian Ocean</location>
</user>
<user>
<username>JesseOctopus</username> <location>Pacific Ocean</location>
</user>
<user>
<username>DrewSquir</username> <location>Atlantic Ocean</location>
</user>
<user>
<username>JamieMantisShrimp</username> <location>Pacific Ocean</location>
</user>
</users>
با مقایسه این دو قالب متوجه میشویم که JSON بسیار فشردهتر است و به تگهای پایانی هم نیازی ندارد؛ درحالیکه XML به تگهای پایانی نیازمند است و درمقایسهبا JSON فشردگی کمتری دارد. در این مثال، XML برخلاف JSON از آرایه استفاده نمیکند. درصورتیکه با HTML آشنا باشید، بهخوبی متوجه میشوید که XML در استفاده از تگها شباهت بسیار زیادی با آن دارد.