JSONفرمتي است براي ذخيره سازي وانتقال داده هاست .اغلب اين فرمت براي انتقال داده از سرور به صفحات وب مورد استفاده قرار ميگيرد.
جيسون داراي مشخصات زيراست:
*ـ فرمت كلي جيسون برگرفته از ايده هاي نحوي علائم شئ جاوااكريپت است ، اما آن فقط بصورت متني است .اين فرمت را ميتوان در هر زبان برنامه نويسي نوشت واستفاده كرد.
مثال فرمت جيسون ـ نمونه زير براي سه ركورد پرسنلي شاملfirstName و lastName است
{ "employees":[ {"firstName":"John", "lastName":"Doe"}, {"firstName":"Anna", "lastName":"Smith"}, {"firstName":"Peter", "lastName":"Jones"} ] }
فرمت داده اي جيسون از نحوي با اشياء جاوااسكريپت يكسان است .بهمين دليل يك برنامه جاواسكريپت مي تواند آنها را به اشياء جاوااسكريپت تبديل نمايد.
فرمت يا قوانين جيسون مطابق زيراست:
داده جيسون با زوجname/value مشابه ويژگي اشياء جاوااسكريپت تنظيم ميگردد.
يك زوجname/value در فرمت جيسون بصورت"name":"value" تنظيم مي شود .مانند نمونه زير:
نام ها در جيسون در داخل دبل كوتيشن قرار ميگيرند، اما در جاوااسكريپت نه
شئ هاي جيسون در داخل{ } قرار ميگيرند .مشابه با جاوااسكريپت شئ ها ميتوانند داراي زوج هايname/value باشند . مطابق نمونه زير:
آرايه هاي جيسون در داخل[ ] قرار ميگيرند .مشابه با جاواسكريپت يك آرايه ميتواند داراي اشياء باشد:
"employees":[ {"firstName":"John", "lastName":"Doe"}, {"firstName":"Anna", "lastName":"Smith"}, {"firstName":"Peter", "lastName":"Jones"} ]
در مثال بالا شئ"employees" يك آرايه است، آن شامل سه شئ ميباشد .هر شئ آن ركوردي ازperson است كه هر ركورد آن ازfirstname وlastname تشكيل شده است .
كاربرد رايج داده جيسون خواندن داده از سرور ونمايش آن در صفحات وب است .براي سادگي آنرا ميتوان بعنوان يك رشته ورودي نشان داد.
پس ابتدا يك رشته جاوااسكريپت كه شامل داده جيسون باشد، ايجاد ميشود:
let text = '{ "employees" : [' + '{ "firstName":"John" , "lastName":"Doe" },' + '{ "firstName":"Anna" , "lastName":"Smith" },' + '{ "firstName":"Peter" , "lastName":"Jones" } ]}';
سپس با استفاده از تابع داخليJSON.parse() آن رشته را به شئ جاوااسكريپت تبديل ميكنيم.
const obj = JSON.parse(text);
بالاخره، شئ جاوااسكريپت را در صفحه قرار ميدهيم:
<p id="demo"></p> <script> document.getElementById("demo").innerHTML = obj.employees[1].firstName + " " + obj.employees[1].lastName; </script >