
جیسون مخفف عبارت JavaScript Object Notation است و یک فرمت به اشتراک گذاری داده است. همانطور که از نام آن پیداست، جیسون از زبان برنامه نویسی جاوا اسکریپت مشتق شده است. اما برای زبان های دیگر از جمله پایتون، روبی، پی اچ پی و جاوا نیز موجود است. در این مقاله آموزشی برنامه نویسی شما را با کدهای JASON و ساختار آنها آشنا می کنیم.
JASON چیست؟
همانطور که گفتیم، JASON مخفف عبارت JavaScript Object Notation است. می توانید داده ها را در این قالب به اشتراک بگذارید. JSON زمانی که مستقل از پسوند json باشد. موارد استفاده؛ اما هنگامی که در قالب فایل دیگری مانند html تعریف می شود، می تواند در گیومه به عنوان یک رشته JSON ظاهر شود. انتقال این فرمت بین وب سرور و کلاینت یا مرورگر آسان است. JSON بسیار خوانا و سبک است و بهترین جایگزین برای XML در نظر گرفته می شود و نیاز به قالب بندی بسیار کمتری دارد.
مقدمه ای بر مفهوم و ساختار json
ساختار کدهای JASON
هنگام کار با JSON، احتمالاً اشیاء JSON را در json ذخیره می کنید. خواهید دید؛ اما آنها همچنین می توانند به عنوان اشیا یا رشته های JSON در بدنه برنامه وجود داشته باشند. هر شی JSON به شکل زیر است:
{ "first_name" : "Sammy", "last_name" : "Shark", "location" : "Ocean", "online" : true, "followers" : 987 }
این یک مثال نسبتا کوتاه JSON است و JSON می تواند خطوط زیادی داشته باشد. داده ها به صورت جفت به صورت نام/مقدار (Name/Value) قرار می گیرند و با کاما از یکدیگر جدا می شوند.
نمادهای { } شامل اشیاء و [ ] همچنین حاوی آرایه خواهد بود. بیشتر داده های مورد استفاده در JSON در یک شی JSON کپسوله شده است. جفت های کلید-مقدار دارای یک دو نقطه (:) بین آنها هستند. به عنوان «کلید»: «ارزش». هر جفت کلید-مقدار با کاما از هم جدا می شود. به عنوان مثال “key” : “value”، “key”: “value”، “key”: “value”.
کسانی که تازه وارد دنیای برنامه نویسی شده اند می توانند مقاله زیر را مطالعه کنند تا API و کاربرد آن را به طور کامل درک کنند.
API چیست؟
کلیدهای JSON در سمت چپ کولون قرار دارند و باید در دو گیومه قرار بگیرند. مانند: “کلید”. مقادیر JSON در سمت راست کولون ظاهر میشوند و در سطح دانهبندی باید یکی از ۶ نوع داده زیر باشد:
- رشته های
- شماره
- اشیاء
- آرایه ها
- بولی (درست یا نادرست)
- صفر
در یک سطح گسترده تر، مقادیر را می توان از انواع داده های پیچیده اشیاء یا آرایه های Jason ساخت. هر قطعه داده ای که به عنوان مقادیر JSON ارسال می شود، نحو خاص خود را حفظ می کند. بنابراین، رشته ها در گیومه قرار می گیرند. البته توجه داشته باشید که در فایلهای json. معمولا قالب را به چند خط گسترش میدهیم. اما می توانید JSON را به صورت فشرده در یک خط بنویسید:
{ "first_name" : "Sammy", "last_name": "Shark", "online" : true, }
این در فایل دیگری یا زمانی که با رشته JSON مواجه می شوید بیشتر قابل توجه است. نوشتن فرمت JSON در چندین خط آن را بسیار خوانا می کند. بنابراین زمانی که با یک مجموعه داده بزرگ سروکار دارید، بهتر است فرمت JSON را در چند خط بنویسید. جیسون فضای خالی بین عناصر خود را نادیده می گیرد. بنابراین، میتوانید بین جفتهای کلید-مقدار فاصله بگذارید تا دادهها برای کاربران خواناتر شوند:
{ "first_name" : "Sammy", "last_name" : "Shark", "online" : true }
توجه داشته باشید که یک شی JSON دقیقاً همان قالب یک شی جاوا اسکریپت نیست. به همین دلیل، می توانید از توابع در اشیاء جاوا اسکریپت استفاده کنید. اما نمی توانید از آنها به عنوان مقادیر در JSON استفاده کنید. بهترین و مهم ترین ویژگی JSON این است که می توان آن را به راحتی بین زبان های برنامه نویسی منتقل کرد تا همه زبان های برنامه نویسی بتوانند از آن استفاده کنند. با این حال، اشیاء جاوا اسکریپت فقط می توانند مستقیماً از طریق زبان برنامه نویسی جاوا اسکریپت دستکاری شوند.
تا اینجا فرمت JSON را با ساده ترین شرایط توضیح داده ایم. اما جیسون می تواند از سلسله مراتب پیچیده اشیاء و آرایه های تو در تو تشکیل شده باشد. در مرحله بعد، در مورد کدهای پیچیده تر JSON صحبت خواهیم کرد.
نحوه کار با کدهای پیچیده JSON
علاوه بر آرایههای تودرتو، JSON میتواند اشیاء تودرتو را در قالب JSON نیز ذخیره کند. این اشیاء و آرایه ها به عنوان مقادیری که به کلید اختصاص داده شده اند ارسال می شوند. این اشیا و آرایه ها معمولاً از جفت های کلید-مقدار تشکیل شده اند.
برای یادگیری نحوه رندر کردن برنامه های وب تک صفحه ای با استفاده از React App، مقاله زیر را بخوانید.
رندر سمت سرور را برای React App فعال کنید
1. اشیاء تو در تو
در فایل users.json زیر، برای هر یک از چهار کاربر (“sammy”، “jesse”، “drew”، “jamie”) یک شی JSON تو در تو وجود دارد که به عنوان مقدار برای هر کاربر ارسال می شود. کلیدهای تودرتو “نام کاربری” و “مکان” با هر کاربر مرتبط است. ما اولین شی JSON تودرتو را در زیر به صورت پررنگ برجسته کرده ایم:
{ "sammy" : { "username" : "SammyShark", "location" : "Indian Ocean", "online" : true, "followers" : 987 }, "jesse" : { "username" : "JesseOctopus", "location" : "Pacific Ocean", "online" : false, "followers" : 432 }, "drew" : { "username" : "DrewSquid", "location" : "Atlantic Ocean", "online" : false, "followers" : 321 }, "jamie" : { "username" : "JamieMantisShrimp", "location" : "Pacific Ocean", "online" : true, "followers" : 654 } }
2. آرایه های تو در تو
داده ها را می توان در قالب JSON با استفاده از آرایه های جاوا اسکریپت که به عنوان مقادیر ارسال می شود، تو در تو قرار داد. جاوا اسکریپت از پرانتز [ ] در انتهای آرایه خود استفاده می کند. آرایه ها مجموعه های مرتب شده ای هستند و می توانند حاوی مقادیر زیادی از داده های مختلف باشند. وقتی داده های زیادی داریم و می توان آن داده ها را با هم گروه بندی کرد، احتمالاً از یک آرایه استفاده می کنیم. سپس اولین آرایه تودرتو را به صورت پررنگ مشخص کردیم:
{ "first_name" : "Sammy", "last_name" : "Shark", "location" : "Ocean", "websites" : [ { "description" : "work", "URL" : "https://www.digitalocean.com/" }, { "desciption" : "tutorials", "URL" : "https://www.digitalocean.com/community/tutorials" } ], "social_media" : [ { "description" : "twitter", "link" : "https://twitter.com/digitalocean" }, { "description" : "facebook", "link" : "https://www.facebook.com/DigitalOceanCloudHosting" }, { "description" : "github", "link" : "https://github.com/digitalocean" } ] }
تودرتو در قالب JSON به ما امکان می دهد روی داده های پیچیده تری کار کنیم.
ساختار json و کدهای آن چگونه است؟
مقایسه 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 به شرح زیر است:
{"users": [ {"username" : "SammyShark", "location" : "Indian Ocean"}, {"username" : "JesseOctopus", "location" : "Pacific Ocean"}, {"username" : "DrewSquid", "location" : "Atlantic Ocean"}, {"username" : "JamieMantisShrimp", "location" : "Pacific Ocean"} ] }
با مقایسه این دو فرمت، متوجه میشویم که JSON بسیار فشردهتر است و نیازی به برچسبهای پایانی ندارد. در حالی که XML به تگ های پایانی نیاز دارد و در مقایسه با JSON فشرده تر است. در این مثال، XML برخلاف JSON از آرایه ها استفاده نمی کند. اگر با HTML آشنایی داشته باشید، می دانید که XML از نظر استفاده از تگ ها بسیار شبیه به آن است.
چگونه اولین برنامه جاوا اسکریپت خود را بنویسیم؟ مقاله آموزشی زیر را بخوانید.
برنامه نویسی جاوا اسکریپت
نتیجه
JSON یک فرمت سبک وزن است که به شما امکان می دهد به راحتی داده ها را به اشتراک بگذارید، دستکاری کنید و ذخیره کنید. در این مقاله آموزش برنامه نویسی باطن به معرفی کدهای JSON و تشریح ساختار آن ها و اشاره به تفاوت های XML و JSON پرداختیم. امیدواریم با مطالعه این مقاله، دیدی کلی از کدها و ساختار JASON پیدا کرده باشید. اگر شما هم نظری در مورد کدهای JASON دارید در قسمت نظرات با ما در میان بگذارید.
سوالات متداول
1. جیسون چیست؟
JASON مخفف عبارت JavaScript Object Notation است که مخفف “notation Object in JavaScript” است. جیسون روشی برای نمایش اشیاء داده در هنگام ارسال آنها از طریق اینترنت است.
2. فایده جیسون چیست؟
در این فرمت می توانید داده ها را به اشتراک بگذارید، کار کنید و ذخیره کنید.
3. XML چیست؟
XML یا زبان نشانه گذاری توسعه پذیر روشی برای ذخیره سازی داده ها به روشی است که هم توسط انسان و هم برای ماشین قابل خواندن باشد.
4. چگونه با کدهای پیچیده JSON کار کنیم؟
JSON می تواند علاوه بر آرایه های تودرتو، اشیاء تودرتو را در قالب JSON ذخیره کند. این اشیاء و آرایه ها به عنوان مقادیری که به کلید اختصاص داده شده اند ارسال می شوند.
5. JSON چه تفاوتی با XML دارد؟
XML به متن بیشتری نیاز دارد و خواندن و نوشتن آن بیشتر از JSON طول می کشد. نکته دیگر این است که XML باید با استفاده از یک تجزیه کننده XML تجزیه شود. در حالی که JSON را می توان با یک تابع استاندارد تجزیه کرد.
{ “@context”: “https://schema.org”، “@type”: “FAQPage”، “mainEntity”: [{
“@type”: “Question”,
“name”: “Jason چیست؟”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “JASON مخفف عبارت JavaScript Object Notation بهمعنای «نمادگذاری اشیاء در جاوااسکریپت» است. جیسون روشی برای نشاندادن اشیای دادهها هنگام ارسال در اینترنت است.”
}
},{
“@type”: “Question”,
“name”: “Jason چه کاربردی دارد؟”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “در این قالب، میتوانید دادهها را بهاشتراک بگذارید و با آنها کار و ذخیرهشان کنید.”
}
},{
“@type”: “Question”,
“name”: “XML چیست؟”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “XML یا زبان نشانهگذاری توسعهیافته راهی برای ذخیره دادههای دردسترس است که هم انسان و هم ماشین میتواند آنها را بخواند.”
}
},{
“@type”: “Question”,
“name”: “نحوه کار با کدهای JSON پیچیده چگونه است؟”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “JSON میتواند علاوهبر آرایههای تودرتو، اشیای تودرتو را هم در قالب JSON ذخیره کند. این اشیاء و آرایهها بهعنوان مقادیری ارسال خواهند شد که به Key اختصاص داده میشوند.”
}
},{
“@type”: “Question”,
“name”: “JSON با XML چه تفاوتی دارد؟”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “XML به متن بیشتری نیاز دارد و خواندن و نوشتن آن طولانیتر از JSON است. نکته دیگر اینکه XML باید با استفاده از تجزیهکننده XML تجزیه شود؛ درحالیکه JSON را میتوان با تابع استاندارد تجزیه کرد.”
}
}]
}
منبع:
digitalocean.com
آشنایی با کدهای JASON و ساختار آنها برای اولین بار در پارسپک. به نظر می رسد.