جیسون چیست و چه کاربردی دارد؟ ( به همراه مثال عملی از اسنپ ??)

JSON
JSON


کلمه JSON مخفف کلمه JavaScript Object Notation هست ، در واقع جیسون (JSON) یک Object جاوا اسکیریپت می باشد که برای ذخیره دیتا و یا انتقال آن استفاده میشود ، جیسون خیلی حجم کمی دارد و به اصطلاح میگویند Light weigh هستش ، جیسون خوانایی بالایی هم دارد در واقع (Human-Readable) هست که میشه گفت یک راه راتباطی استاندارد (Communicate Standard) بین دستگاه های مختلف میباشد.


قبل از اینکه JSON به یک استاندار تبدیل بشه از XML که مخفف (Extensible Markup Language) است استفاده میشد ، که یک زبان نشانه گذاریه ، مانند HTML (HyperText Markup Language) ، ولی مانند HTML تگ ها از پیش تعریف نشده اند و شما با توجه به نیاز خود تگ تعریف میکنید ، XML علاوه بر اینکه یک زبانه نشانه گذاری میباشد ، یک فورمت فایل برای ذخیره داده ها و انتقال و تبادل آنها میان دستگاه های مختلف نیز میباشد.

جالب است بدانید که ، MongoDB که یک دیتا بیس (DBMS = DataBaseManagementSystem) NoSql هست برای ذخیره داکیومنت های خود در Collection ها از فرمتی به نام Bson استفاده میکند که شباهت زیادی با جیسون دارد.


JSON       VS        XML
JSON VS XML

تفاوت های تکنیکال میان JSON و XML :

1 - همانطور که میدانیم XML یک زبانه نشانه گذاریه ، ولی JSON یک فرمت فایل برای ذخیره و یا ارسال داده میان قسمت های مختلف یک دستگاه یا دستگاه های متفاوت میباشد.

2 - برای ما برنامه نویسان اهمیت زیادی دارد ، تکنولوژیی که استفاده میکنیم از لحاظ حجم ، سبک باشد و حافظه کمتری اشغال کند ، چون طبیعتا هرچه نرم افزار ما سبک تر باشه سرعت اجرای بالاتری نیز خواهد داشت و JSON نسبت به XML خیلی سبک تر میباشد و سرعت اجرای بالاتری نیز دارد.

3 - جیسون ( JSON ) برپایه زبان برنامه نویسه جاوا اسکیریپته و XML برپایه SGML.

4 - جیسون ( JSON) برای یادگیری خیلی راحت تر و قابل فهم تر از XML میباشد زیرا به زبان انسان (انگلیسی) نزدیک تر است و خوانایی بالاتری نیز دارد ، در واقع Human-Readable تر هست.

5 - جیسون از آرایه ها ( آرایه ها یک نوع ، داده هست که در زبان های برنامه نویسی استفاده میشود برای ذخیره و نگهداری چندین مقدار ) پشتیبانی میکند ولی XML چنین ، توانایی را ندارد.

6 - امنیت XML از JSON بیشتر است ولی این مقدار ، مقداره قابل توجهی نمیباشد.

7 - جیسون ( JSON) فقط از متن ( Text ) ، اعداد ، و دیتا تایپ ها ( انواع داده هستند در زبان های برنامه مانند اعداد صحیح (integer) و یا رشته ها ( به مجموعه کاراکتر هایی که پشت سر هم قرار میگیرند یک رشته میگوند )(String ) و . . . ) پشتیبانی میکند ولی XML علاوه بر تمام مواردی که JSON پشتیبانی میکند ، از عکس ها ، نمودار ها و . . . پشتیبانی میکند.


مثال های عملی :

رسیدیم به بخش جذاب این مقاله یعنی مثال های عملی درباره این دو تکنولوژی ، در چندین مثال عملی میخوایم با هم تفاوت میان این دو تکنولوژی را برسی کنیم.



اول از همه با یک مثال خیلی ساده شروع میکنیم :

'{&quotname&quot:&quotMasoud&quot, &quotage&quot: 17, &quotcar&quot:null}'

این یک متنه خیلی ساده تحت قالب جیسون هست ، که ماننده آرایه ها دارای index و value میباشد ، این متن جیسون حاوی 3 عنصر است که اطلاعات یک فرد با نام مسعود و سن 17 را نمایش میدهد که ماشین ندارد ( null یک نوع دیتا تایپ هست در زبان های برنامه نویسی ---- برای اطلاعات بیشتر اینجا کلیک کنید )


بریم سراغ یک مثال دیگه :

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

{&quotemployees&quot:[
  { &quotfirstName&quot:&quotParsa&quot, &quotlastName&quot:&quotRezaee&quot },
  { &quotfirstName&quot:&quotAhmad&quot, &quotlastName&quot:&quotMozaffary&quot },
  { &quotfirstName&quot:&quotMasoud&quot, &quotlastName&quot:&quotHarooni&quot }
]}

اول و آخر متنی که تحت قالب JSON است ، باید آکولاد (Curly Bracket) باشد ، در واقع یک متنه جیسون با آکولاد شروع و تمام میشود.
جیسون را ماننده یک آرایه تصور کنید ، ما میتوانیم آرایه های چند بعدی داشته باشیم ( آرایه ی چند بعدی ، به آرایه ای میگویند که داخل خود مجددا آرایه ای داشته باشد ) در جیسون هم چنین ساختاری برقرار است.

اگر بخواهیم در یک جیسون ، جیسونی دیگر داشته باشیم ، از یک [ ] ( Square Brackets ) استفاده میکنیم که مشخص کنیم میخواهیم مجددا جیسونی بنویسیم.



چند مثال عملی با XML :

<employees>
       <firstname>Ali</firstname>
       <lastname>Ahmadi</lastname>
</employees>
<employees>
       <firstname>Ali</firstname>
       <lastname>Ahmadi</lastname>
</employees>
<employees>        
        <firstname>Ali</firstname>
        <lastname>Ahmadi</lastname>
</employees>

همانطور که میبینید ، جیسون خیلی تعداد خطوط کمتری نسبت به XML دارد و برای یادگیری قابل فهم تر و راحت تر است.



Snapp
Snapp


یک مثال کاملا کاربردی از شرکت اسنپ برای درک بهتر موضوع :

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



امیدوارم این مقاله براتون مفید بوده باشه و تونسته باشم کمکی به کامیونیتی برنامه نویسان ایرانی کرده باشم ، اگر سوالی داشتید میتونید سوالتون رو برام ایمیل کنید تا با هم دربارش گپ بزنیم :
راه ارتباطی با من ??‍♂️