JSON (JavaScript Object Notation)
JSON (JavaScript Object Notation) یک فرمت متنی است که برای ذخیرهسازی و انتقال دادهها بین سرورها و برنامهها استفاده میشود. JSON از ساختارهای دادهای سادهای مانند آرایهها و اشیاء بهره میبرد و میتواند توسط اکثر زبانهای برنامهنویسی پشتیبانی شود. این فرمت معمولاً برای تبادل دادهها در اپلیکیشنهای وب و APIها مورد استفاده قرار میگیرد.
۱. ساختار JSON
JSON از دو ساختار اصلی برای نمایش دادهها استفاده میکند:
- اشیاء (Objects): مجموعهای از جفتهای کلید و مقدار، که هر کلید باید یک رشته (string) باشد و مقادیر میتوانند انواع مختلف دادهای مانند عدد، رشته، آرایه یا حتی شیء باشند.
- آرایهها (Arrays): مجموعهای از مقادیر که بهصورت فهرست در یک قلاب [] قرار میگیرند.
ساختار کلی یک شیء JSON:
"key": "value"
}
ساختار کلی یک آرایه JSON:
"value1",
"value2",
"value3"
]
۲. انواع دادهها در JSON
- رشتهها (Strings): رشتهها در JSON باید داخل دابل کوتیشن (") قرار بگیرند.
- اعداد (Numbers): اعداد در JSON مشابه اعداد معمولی در زبانهای برنامهنویسی هستند.
- شیء (Objects): مجموعهای از جفتهای کلید و مقدار که در {} قرار دارند.
- آرایه (Arrays): مجموعهای از مقادیر که در [] قرار دارند.
- مقدار بولی (Boolean): مقادیر true یا false.
- null: نمایانگر هیچ مقداری یا "خالی بودن" است.
نمونه دادهها در JSON:
"name": "John",
"age": 30,
"isStudent": false,
"address": {
"city": "New York",
"zip": "10001"
},
"hobbies": ["reading", "travelling", "coding"]
}
در این نمونه:
- "name" یک رشته است.
- "age" یک عدد است.
- "isStudent" یک مقدار بولی است.
- "address" یک شیء است که حاوی اطلاعات بیشتر است.
- "hobbies" یک آرایه است که شامل چند رشته است.
۳. ویژگیهای مهم JSON
- سادگی و خوانایی: JSON بهخوبی برای انسانها قابل خواندن است و ساختاری ساده و معقول دارد.
- حجم کم: در مقایسه با دیگر فرمتها (مانند XML)، JSON حجم کمتری دارد که موجب انتقال سریعتر دادهها میشود.
- مستقل از زبان برنامهنویسی: با وجود اینکه JSON در ابتدا بهعنوان یک فرمت مختص جاوا اسکریپت ایجاد شد، اما امروزه توسط بسیاری از زبانهای برنامهنویسی پشتیبانی میشود.
۴. استفاده از JSON در جاوا اسکریپت
در جاوا اسکریپت، برای تبدیل دادههای JSON به شیء جاوا اسکریپت یا بالعکس، میتوان از متدهای JSON.parse() و JSON.stringify() استفاده کرد.
1.4. تبدیل رشته JSON به شیء جاوا اسکریپت (()JSON.parse)
با استفاده از این متد، یک رشته JSON را به یک شیء جاوا اسکریپت تبدیل میکنیم.
مثال:
let obj = JSON.parse(jsonString);
console.log(obj.name); // خروجی: John
console.log(obj.age); // خروجی: 30
2.4. تبدیل شیء جاوا اسکریپت به رشته JSON (JSON.stringify())
این متد شیء جاوا اسکریپت را به یک رشته JSON تبدیل میکند که میتوان آن را برای ارسال به سرور استفاده کرد.
مثال:
let jsonString = JSON.stringify(obj);
console.log(jsonString); // خروجی: {"name":"John","age":30}
۵. کاربردهای JSON
- انتقال دادهها در وب: JSON یکی از پرکاربردترین فرمتها برای انتقال دادهها بین مرورگر و سرور است. این فرمت در APIها برای ارسال و دریافت دادهها بسیار رایج است.
- ذخیرهسازی دادهها: JSON میتواند برای ذخیرهسازی دادهها در فایلها یا پایگاههای داده استفاده شود.
- پشتیبانی در اکثر زبانها: JSON توسط بیشتر زبانهای برنامهنویسی مانند Python، Java، PHP، Ruby و #C پشتیبانی میشود، به همین دلیل در ارتباطات میان سیستمها و برنامهها استفاده گستردهای دارد.
۶. مزایای JSON
- سادگی: نوشتن و خواندن JSON نسبت به دیگر فرمتها، مانند XML، بسیار سادهتر است.
- خوانایی: JSON به راحتی برای انسانها قابل خواندن است.
- پشتیبانی در مرورگرها: اکثر مرورگرها بهطور بومی از JSON پشتیبانی میکنند و قابلیتهایی مانند ()JSON.parse و ()JSON.stringify بهصورت استاندارد در جاوا اسکریپت وجود دارد.
- پشتیبانی در اکثر زبانها: بسیاری از زبانهای برنامهنویسی پشتیبانی گستردهای از JSON دارند.
۷. محدودیتها و نکات JSON
- فقط دابل کوتیشن: در JSON، رشتهها باید داخل دابل کوتیشن قرار بگیرند و نمیتوان از سینگل کوتیشن استفاده کرد.
- عدم پشتیبانی از توابع: JSON تنها دادهها را ذخیره میکند و توابع یا متدها را نمیتواند ذخیره کند.
- محدودیت در نوع داده: JSON فقط از انواع داده خاصی مانند رشته، عدد، بولین، شیء، آرایه و null پشتیبانی میکند.
نتیجهگیری
JSON یک فرمت ساده و مؤثر برای ذخیرهسازی و انتقال دادهها است. بهدلیل ساختار ساده، خوانایی خوب و پشتیبانی وسیع در زبانهای مختلف، JSON یکی از استانداردهای اصلی برای ارتباطات دادهای بین سرویسها و برنامههای وب است. استفاده از JSON در جاوا اسکریپت و دیگر زبانها بهسادگی انجام میشود و ابزارهایی برای تبدیل دادهها به این فرمت و بالعکس در دسترس است.
