JSON چیست؟
JSON واژه اختصاری عبارت JavaScript Object Notation به معنای “نشانهگذاری شئ جاوا اسکریپت” است. البته به معنای آن توجه زیادی نکنید چون معمولا ترجمه این عبارات مفهوم دقیقی ارائه نمیدهند.
جیسون یک قالب سبک وزن (lightweight) برای ذخیره و حملونقل داده است. شما با این فرمت میتوانید اطلاعات را در قالب متن جابه جا کنید و حتی از بیرون از شبکه انتقال دهید. فایلهای جیسون هم برای انسان و هم برای کامپیوترها خوانایی دارند.
JSON برای تبادل اطلاعات بین سرور و مرورگر فرمت سبک و مناسبی است. اما تنها فرمت موجود برای این کار نیست و XML هم در این زمینه وجود دارد. اما چرا بعضیها JSON را به XML ترجیح میدهند؟ شاید بخاطر خوانایی بیشتر آن نسبت به XML و محبوبیت زبان JavaScript است.
جیسون غالباً برای ارسال داده از یک وب سرور به یک صفحه وب استفاده میشود.
جیسون خود توصیف (self-describing) است یعنی فهم کدهای آن به دلیل ساختار نام/مقدار (name/value) بسیار آسان است.
مثالی از JSON
در ابتدا قصد داریم با مثالی از JSON شروع و آشنایی مختصری با آن پیدا کنیم. با این حال اگر این مثال را متوجه نشدید نگران نباشید، در ادامه مطلب بطور کامل به درک مفهوم و نحوه نوشتن کدهای جیسون میپردازیم.
مثال زیر یک شئ با نام “employees” به معنای کارمندان تعریف کرده است که مقدار این شی حاوی آرایهای با ۳ عنصر است. که هر عنصر آرایه یک شئ است که مشخصات یک کارمند را دربر میگیرد.
|
{ “employees”:[ {“firstName”:“John”, “lastName”:“Doe”}, {firstName”:“Anna”, “lastName”:“Smith”}, {“firstName”:“Peter”, “lastName”:“Jones”} ] } |
قواعد نحوه نوشتن جیسون
- دادهها در جفتهایی بصورت نام/مقدار (name/value) قرار میگیرد.
- دادهها با علامت کاما از هم جدا میشوند.
- علامتهای { } اشیاء را نگه میدارند.
- علامتهای [ ] آرایهها را نگه میدارند.
نشانهگذاری شئ جاوا اسکریپت
قالب JSON از لحاظ نحوی با قالب کدهای ایجاد اشیاء در جاوااسکریپت یکسان است.
به دلیل این شباهت، یک برنامه جاوااسکریپت میتواند به راحتی دادههای جیسون را به اشیاء بومی جاوااسکریپت تبدیل کند.
نحوه نوشتن جیسون از نحوه نوشتن اشیا جاوااسکریپت نشات گرفته است،اما قالب آن فقط متن است.کدخواندن و تولید جیسون را می توان باهر زبان برنامه نویسی نوشت.
دادههای JSON
دادههای JSON بصورت زوجهای نام/مقدار (name/value) نوشته میشوند، دقیقا مانند خصوصیات شئ جاوااسکریپت.
یک زوج نام/مقدار شامل یک فیلد نام (درون جفت کوتیشن)، و به دنبال آن یک علامت دونقطه، و بعد از آن مقدار، است.
1
|
“firstName”:“John”
|
نام ها (name) در جیسون باید درون جفت کوتیشن قرار گیرند،اما نام های جاوااسکریپت نه.
اشیاء جیسون
اشیاء JSON درون پرانتز نوشته میشوند.
دقیقا مانند جاوااسکریپت، اشیاء میتوانند حاوی چندین زوج نام/مقدار (name/value) باشند.
1
|
{“firstName”:“John”, “lastName”:“Doe”}
|
آرایههای JSON
آرایههای JSON درون براکت نوشته میشوند.
درست مانند جاوااسکریپت، آرایه میتواند حاوی اشیاء باشد.
1
2
3
4
5
|
“employees”:[
{“firstName”:“John”, “lastName”:“Doe”},
{“firstName”:“Anna”, “lastName”:“Smith”},
{“firstName”:“Peter”, “lastName”:“Jones”}
]
|
در مثال بالا، شئ “employees” شامل یک آرایه است که این آرایه شامل ۳ شئ میباشد.
هر شئ یک رکورد از یک شخص است (با یک نام و نام خانوادگی).
تبدیل یک متن از فایل JSON به یک شئ جاوااسکریپت
یک استفاده رایج از جیسون برای خواندن دادهها از وب سرور، و نمایش آن در صفحه وب است.
برای سادگی، میتوان کدهای جیسون را با استفاده از یک رشته (String) به عنوان ورودی نشان داد.
ابتدا یک رشته (متن) جاوااسکریپت که حاوی یک کد جیسون است را ایجاد کنید:
1
2
3
4
|
var text = ‘{ “employees” : [‘ +
‘{ “firstName”:”John” , “lastName”:”Doe” },’ +
‘{ “firstName”:”Anna” , “lastName”:”Smith” },’ +
‘{ “firstName”:”Peter” , “lastName”:”Jones” } ]}’;
|
حال از یک تابع داخلی جاوااسکریپت به نام ()JSON.parse برای تبدیل این رشته (string) به یک شئ جاوااسکریپت استفاده کنید.
1
|
var obj = JSON.parse(text);
|
در نهایت، از این شئ جدید جاوااسکریپت در صفحه خود استفاده کنید.
1
2
3
4
5
6
|
<p id=“demo”></p>
<script>
document.getElementById(“demo”).innerHTML =
obj.employees[1].firstName + ” “ + obj.employees[1].lastName;
</script>
|
و در انتها
این مطلب سعی کردیم خیلی کوتاه به سوال JSON چیست پاسخ دهیم. امیدواریم که این مقاله برای شما کاربردی باشد. دیدگاهتان درمورد این مقاله را با ما به اشتراک بگذار.
۴ پاسخ
سلام خیلی ممنون از سایت خوبتون
برای استفاده از اون توی API باید چیکار کرد مثلا پیامچ از پیامرسانی به پیامرسان دیگه ببره
سلام هستی عزیز
در apiها هم از جیسون استفاده میشه
بله برای آشنایی بیشتر باید به سراغ آموزشهای api نویسی برید.
چقدر قابل فهم و کاربردی بود. ممنون
ممنون از محبت شما فاطمه ی عزیز.