JSON: JavaScript Object Notation
JSON گرامری برای ذخیره و تبادل اطلاعات متنی میباشد.
JSON کوچکتر از XML است و نیز برای تجزیه کردن سریعتر و آسانتر میباشد.
JSON فرمتی سبک وزن برای مبادله داده های متنی میباشد.
JSON مستقل از زبان میباشد.*
JSON بصورت "خود تشریح" و برای درک آسان میباشد.
مثال JSON
{
"employees": [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
]
}
آبجکت employee آرایه ای از 3 رکورد کارمند میباشد.
فرمت متنی JSON از نظر قواعد نحوی با کدهایی که برای ایجاد آبجکت های جاوا اسکریپت است یکسان میباشد.
JSON بصورت "خود تشریح" و برای درک آسان می باشد بدلیل این تشابه بجای استفاده از پارسر، یک برنامه جاوا اسکریپت میتواند از تابع توکار eval() استفاده کند و داده های JSON را برای تولید آبجکت های محلی جاوا اسکریپت اجرا کند.
*JSON از گرامر جاوا اسکریپت برای توصیف آبجکت های دادهای استفاده میکند اما باز هم JSON مستقل از پلتفرم و زبان میباشد. پارسر JSON و کتابخانههای JSON برای زبانهای برنامه نویسی مختلفی موجود میباشد.
مشابه XML
JSON بصورت متنی و واضح است.
JSON بصورت "خود تشریح" است (قابلیت خوانایی برای انسان).
JSON بصورت مقادیر داخل مقادیر میباشد.
JSON می تواند توسط جاوا اسکریپت تجزیه شود.
JSON بصورتی است که داده های آن می تواند توسط AJAX منتقل شود.
برخلاف XML
تگ انتهایی ندارد.
کوتاه است.
در خواندن و نوشتن سریع تر است.
می تواند توسط تابع درونی جاوا اسکریپت به نام ()eval تجزیه شود.
از آرایه ها استفاده می کند.
بدون کلمات رزرو شده است.
چرا JSON؟
برای اپلیکیشن های آجاکس ، JSON سریعتر و آسانتر از XML می باشد:
با استفاده از XML
یک سند XML واکشی می شود.
با استفاده از XML DOM این سند پیمایش میشود.
مقادیر استخراج میشود و در متغیرها ذخیره میشود.
با استفاده از JSON
رشته JSON واکشی می شود.
با استفاده از تابع ()eval ارزیابی می شود.
گرامر JSON
گرامر و نحو JSON زیرمجموعه گرامر جاوا اسکریپت می باشد.
زوج های نام/مقدار JSON
داده های JSON در دوتایی های نام/مقدار نوشته می شوند.
یک جفت نام/مقدار شامل یک فیلد نام (داخل علامت نقل قول) سپس علامت دونقطه و سپس یک مقدار می باشد :
"firstName" : "John"
مقدار های JSON
مقدار ها در JSON می توانند بصورت زیر باشند:
عددی (صحیح یا اعشاری)
رشته ای (در دابل کوتیشن)
بولی (true یا false)
آرایه (داخل براکت گوشه دار)
آبجکت (داخل براکت)
تهی (null)
آبجک های JSON
آبجکت ها در JSON داخل براکت نوشته می شوند و میتوانند شامل چندین زوج نام/مقدار باشند.
{ "firstName":"John" , "lastName":"Doe" }
همانطور که مشاهده میشود قابل فهم میباشد و معادل جاوا اسکریپتی آن بصورت زیر است:
firstName = "John"
lastName = "Doe"
آرایه های JSON
آرایهها در JSON داخل براکت نوشته می شوند.
یک آرایه میتواند شامل چندین آبجکت باشد:
{
"employees": [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
]
}
در مثال بالا آبجکت employees آرایهای است که شامل سه آبجکت میباشد. هر آبجکت رکوردی از اشخاص (با نام و نام خانوادگی) میباشد.
JSON از گرامر نحوی JavaScript استفاده میکند
بدلیل آنکه JSON از نحو جاوا اسکریپت استفاده میکند، برای اجرای JSON در جاوا اسکریپت به نرم افزار اضافی دیگری نیاز نیست.
با جاوا اسکریپت شما میتوانید آرایهای از اشیاء بسازید و داده هایی را به آن انتساب دهید بصورت زیر:
var employees = [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName": "Jones" }
];
اولین عنصر آرایه در جاوا اسکریپت میتواند به صورت زیر دستیابی شود:
employees[0].lastName;
نتیجه برگشتی آن:
Doe
داده ها بصورت زیر میتوانند تغییر یابند :
employees[0].lastName = "Jonatan";
فایل های JSON
نوع فایل برای فایل های JSON بصورت ".json" می باشد.
نوع MIME برای رشته JSON بصورت "application/json" میباشد.
تبدیل یک متن JSON به آبجکت جاوا اسکریپت
یکی از پر کاربردترین استفاده JSON واکشی دادههای JSON از سرویس دهنده وب (به عنوان یک فایل یا درخواست Html) ، تبدیل دادههای JSON به اشیای جاوا اسکریپت و سپس استفاده دادهها در صفحات وب است.
مثال JSON، تبدیل رشته به آبجکت
ایجاد رشته جاوا اسکریپت که شامل گرامر JSON است:
var txt = '{ "employees" : [' +
'{ "firstName":"John" , "lastName":"Doe" },' +
'{ "firstName":"Anna" , "lastName":"Smith" },' +
'{ "firstName":"Peter" , "lastName":"Jones" } ]}';
از آنجایی که گرامر JSON زیرمجموعه ای از گرامر جاوا اسکریپت میباشد، تابع eval() جاوا اسکریپت میتواند متن JSON را به آبجکت جاوا اسکریپت تبدیل کند.
تابع eval() با استفاده از کامپایلر جاوا اسکریپت رشته JSON را تجزیه کرده و آبجکت های جاوا اسکریپت را تولید می کند.
برای اجتناب از خطای گرامری، متن باید با پارانتز شروع و خاتمه یابد:
var obj = eval ("(" + txt + ")");
استفاده از آبجکت جاوا اسکریپت در صفحه:
First Name:
Last Name:
< script type="text/javascript">
document.getElementById("fname").innerHTML = obj.employees[1].firstName
document.getElementById("lname").innerHTML = obj.employees[1].lastName
< / script>
پارسر JSON
تابع eval() می تواند هر جاوا اسکریپتی را کامپایل و اجرا کند که این نشانگر مشکل امنیتی است.
راه امن تر این است که از پارسر JSON برای تبدیل متن JSON به آبجکت جاوا اسکریپت استفاده شود. پارسر JSON فقط متن JSON را تشخیص میدهد و کامپایل نمیکند.
در مرورگر هایی که بصورت محلی از JSON پشتیبانی میکنند ، پارسر JSON سریعتر است.
پشتبانی از JSON شامل مرورگر های جدید و استاندارد جدید ECMAScript جاوا اسکریپت است.
اگر قبلا در بیان ثبت نام کرده اید لطفا ابتدا وارد شوید، در غیر این صورت می توانید ثبت نام کنید.