بسیاری از اپلیکیشنهای مدرن که امروزه ساخته میشوند نیاز به انتقال داده در بین کلاینت و سرور دارند. برای مدتهای طولانی بود که برای انجام چنین کاری برنامه نویسان از زبان XML استفاده میکردند که البته باید گفت بسیار هم محبوب و پر استفاده بود. اما در اوایل ۲۰۰۰ که JSON معرفی شد همه چیز تغییراتی به خود دید و قالب انتقال یا Exchange دادهها تغییر پیدا کرد.
در این مقاله قصد داریم در رابطه با چیستی JSON اطلاعاتی را پیدا کرده و به درک این برسیم که چگونه میتوان از آن استفاده کرد.
جیسان یا JSON چیست؟
JSON مخفف Javascript Object Notation بوده و یک قالب متنی برای تسهیل فرایند انتقال داده است. ساختار JSON را مجموعهای از جفتهای Key:Value تشکیل میدهد که در این ساختار Key باید به صورت رشته ایجاد شده و مقدار Value میتواند اعداد، رشته، بولین، آرایه و... باشد.
چند قاعده کلی و اساسی نیز برای استفاده از JSON وجود دارد که در زیر میتوانید آنها را مشاهده کنید:
- در قالب دادهای JSON کلید یا Keyهایی که تعیین میکنید باید حتما در دابل کوتیشن (“) نگهداری شوند.
- مقدار Key و Value باید با استفاده از علامت دو نقطه (:) از همدیگر جداسازی شوند.
- در JSON میتوانید چندین جفت Key-Value داشته باشید. برای جداسازی آنها از همدیگر نیاز است که از علامت کاما (,) استفاده کنید.
- در فایلهای JSON شما قابلیت نوشتن کامنت را ندارید. در صورتی که کامنتی را نیز بنویسید خود بخشی از دادههایتان خواهد بود.
بنابراین تعاریف یک مثال از JSON را میتوانید در زیر مشاهده کنید:
{
"name": "Alex C",
"age": 2,
"city": "Houston"
}
قالب معتبر دادهای JSON را میتوانید به دو شکل بنویسید:
- شکل اول مجموعهای از جفتهای Key:Value است که همگی در بین دو کروشه باز و بسته قرار میگیرند. مثال بالا را میتوانید بعنوان مثال این حالت مشاهده کنید.
- شکل دوم مجموعهای از مجموعههای Key:Value است که با استفاده از علامت (,) از همدیگر جدا شدهاند. در مثال زیر میتوانید این قالب را نیز مشاهده کنید.
[
{
"name": "Alex C",
"age": 2,
"city": "Houston"
},
{
"name": "John G",
"age": 40,
"city": "Washington"
},
{
"name": "Bala T",
"age": 22,
"city": "Bangalore"
}
]
به عنوان یک نکته مهم این را بگوییم که JSON منحصر یا وابسته به زبان برنامه نویسی جاوا اسکریپت نیست و موجودیتی مستقل دارد. JSON تنها برای قالبدهی به دادهها مورد استفاده قرار میگیرد و هدفش نیز جایگزین شدن با دیگر زبانهای برنامهنویسی نیست. اما نحوه قالبدهی به دادهها در JSON درست شبیه به تعریف Objectها در جاوا اسکریپت است. در هر حال این نکته بسیار مهم است که JSON تنها با جاوا اسکریپت مورد استفاده قرار نگرفته و میتوان از قدرت آن در تقریبا هر زبان برنامه نویسی دیگری از جمله پایتون، PHP، جاوا و... استفاده کرد.
یک مثال کاربردی برای JSON
در مثال زیر یک قطعه کد JSON را مشاهده خواهید کرد که برای استفاده عملی از آن میتوانید آن را در فایلی با فرمت .json ذخیره کنید. تمام دادههای موجود در این مثال از قاعده Key:Value پیروی خواهند کرد.
{
"name": "Aleix Melon",
"id": "E00245",
"role": ["Dev", "DBA"],
"age": 23,
"doj": "11-12-2019",
"married": false,
"address": {
"street": "32, Laham St.",
"city": "Innsbruck",
"country": "Austria"
},
"referred-by": "E0012"
}
در قطعه کد بالا که اطلاعات یک کارمند ذخیره شده شما میتوانید موارد زیر را مشاهده کنید:
- کلید name که حاوی نام کارمند بوده و با مقدار String پر شده است.
- کلید id که حاوی شماره شناسایی کارمند بوده و باز هم با مقدار String پر شده است.
- کلید role که بیانگر نقشها و وظیفههایی است که کارمند باید انجام دهد. این کلید با مقدار آرایه پر شده است.
- کلید age که بیانگر سن کارمند بوده و مقدار Number پر شده است.
- کلید doj بیانگر تاریخی است که کارمند به شرکت ملحق شده است. از آنجایی که نمیتوانیم به صورت مستقیم از مقدار date استفاده کنیم ما این تاریخ را به صورت رشته تعیین کردهایم.
- کلید married که بیانگر متاهل بودن یا نبودن است. برای پر کردن این مقدار ما از bool استفاده کردهایم.
- کلید address که بیانگر آدرس خانه کارمند است. از آنجایی که آدرس میتواند خود شامل خیابان، شهر و کشور محل زندگی باشد ما این مقدار را با یک Object دیگر نمایش دادهایم.
- کلید referred-by بیانگر آشنا یا فردی که وی را برای این موقعیت شغلی پیشنهاد کرده است. این مقدار نیز در صورتی که کسی وی را پیشنهاد کرده باشد id وی را به صورت string دریافت کرده و در غیر اینصورت مقدار null را دریافت میکند.
تبدیل کردن JSON به Javascript
بعد از نوشتن و یا دریافت کردن اطلاعات از طریق فایل JSON نوبت آن میرسد که ما از دادههای مربوطه استفاده کرده و آنها را از طریق زبان برنامهنویسی که با آن کار میکنیم Parse یا در واقع ترجمه کنیم.
JSON برای تمام زبانهای برنامه نویسی به صورت داخلی و یا کتابخانه های خارجی امکاناتی را ارائه داده که میتوانند با بهره گرفتن از آنها کدهای خودشان را تبدیل کنند.
در این بخش از مقاله قصد داریم نگاهی به این فرایند در زبان برنامه نویسی جاوا اسکریپت بیاندازیم.
در زبان برنامه نویسی جاوا اسکریپت تابع داخلی تحت عنوان json.parse() وجود دارد که با به کار گیری آن میتوانید اطلاعات JSON را به یک متغیر انتساب داده و بعد از آن به روشهای مختلفی استفاده کنید.
در مثال زیر میتوانید یک نمونه از این حالت را مشاهده کنید:
const userJSONData = `{
"name": "Alex C",
"age": 2,
"city": "Houston"
}`;
const userObj = JSON.parse(userJSONData);
console.log(userObj);
حال میتوانید بجای userJSONData از یک فایل با فرمت .json نیز استفاده کنید.
تبدیل کردن Object به JSON
زبانهای برنامه نویسی مختلف یک ساختار دادهای منحصر به فرد در اختیار دارند که بیشترین سازگاری را با نوع دادهای JSON داشته و از طریق آن میتوانند دادههایی که تولید میکنند را به JSON تبدیل کنند.
برای مثال در زبان برنامه نویسی جاوا اسکریپت، ساختار دادهای Object میتواند به سادگی به JSON تبدیل شود. برای این موضوع میتوانید به مثال زیر دقت کنید:
const userObj = {
name: 'Alex C',
age: 2,
city: 'Houston'
}
const userJSONData = JSON.stringify(userObj);
console.log(userJSONData);
همانگونه که مشاهده کردید تمام این موارد از طریق خود جاوا اسکریپت و امکانات داخلی آن انجام شده است. در صورتی که از زبانهای برنامه نویسی دیگری برای مثال پایتون استفاده کنید ممکن است نیاز به استفاده از ماژولها و کتابخانههای دیگری نیز داشته باشید.
در پایان
یادگیری و توانایی کار کردن با JSON به شما قابلیت آن را میدهد که در نهایت روی موضوع REST API به خوبی کار کرده و بتوانید وارد فرایند توسعه APIها شوید.
با یادگیری یک زبان برنامهنویسی به خوبی شما قابلیت استفاده از کدهای JSON را پیدا خواهید کرد. در نتیجه بهتر است سراغ دورههای آموزشی هر زبان برنامهنویسی رفته و در آن فرایند استفاده از JSON را یاد بگیرید.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید