جیسان JSON چیست؟
جیسان (JSON) معادل عبارت JavaScript Object Notation به معنی “نشانهگذاری اشیاء در جاوااسکریپت” است. یک قالب استاندارد متن باز سبک که امکان تبادل دادهها را به صورت خوانا برای انسان، ممکن ساخته است. جیسان مستقل از زبانهای برنامه نویسی بوده و مفسرهایش تقریبا در هر زبانی موجود است. جیسان فقط یک ساختار متنیست که انواع دادهها را سازماندهی میکند.
قواعد ساختاری جیسان JSON
بخاطر رابطه جیسان با جاوااسکریپ، قواعد ساختاری این استاندارد، از نحوه نشانهگذاری اشیاء جاوا اسکریپت نشات گرفته است:
- دادهها به صورت جفتهای name/value (یا key/value) هستند
- جداکننده بین key و value توسط (:) است
- دادهها توسط کاما (,) جدا میشوند
- آکولاد {} ها اشیاء را نگهداری میکنند
- برکت [] ها آرایهها را نگهداری میکنند
- در جیسان name یا key بایستی به صورت string بوده و داخل “” قرار گیرد.
- فایلهای جیسان با فرمت .json ذخیره میشوند.
- مقادیر جیسان بر خلاف جاوااسکریپت، نمی توانند نوع تابع، تاریخ و تعریف نشده داشته باشند.
- تمام key ها در نوع داده object به صورت رشته بوده و نمیتوانند تکراری باشند.
انواع دادههای جیسان JSON
- اعداد/number (صحیح یا حقیقی)
{“age”:30}
- رشته/string (کدهایی که با “ محصور شده اند)
{“name”:“Hadi”}
- مقدار منطقی/boolean (true یا false)
{“sale”:true}
- آرایه/array (لیستی مرتب از مقادیر که در میان [] قرار گرفته و جزءهای آن با کاما از هم جدا میشوند، ترتیب مقادیر در این لیست اهمیت دارد)
{
“employees”:[“Hadi”, “Milad”, “Omid”]
}
- شئ/object (مجموعهای از جفتهای name و value که در میان {} قرار گرفته اند. اشیاء در جیسان باید از قواعد ساختاری اصلی پیروی کنند، ترتیب جفتها در این لیست اهمیت ندارد)
{
“employee”:{“name”:“Hadi”, “age”:30, “city”:“Urmia”}
}
- تهی/Null
{“middlename”:null}
پشتیبانی جیسان JSON در Qt
پشتیبانی از JSON در Qt، یک رابط کاربری ++C برای parse ،modify و save دادههای جیسان فراهم میکند. یک سند ساده جیسان:
{ "FirstName": "John", "LastName": "Doe", "Age": 30, "Address": { "Street": "Downing Street 10", "City": "London", "Country": "Great Britain" }, "Phone numbers": [ "+44 1234567", "+44 2345678" ] }
فایل json. مثال بالا، به صورت کلی یک شئ بوده، که شامل 4 جفت key/value است. دو تا از آنها string، یکی number، یکی object و اخرین مورد array است. به سادگی مشاهده میکنید که یک سند json. باید یک array یا object باشد، بنابرین محتویات این سند داخل {} یا [] قرار میگیرند.
کلاسهای جیسان در Qt
QJsonArray | گنجاندن یک آرایه JSON |
QJsonDocument | خواندن یا نوشتن اسناد جیسان |
QJsonObject | گنجاندن یک شئ JSON |
QJsonObject::const_iterator | فراهم کردن یک STL-style const |
QJsonObject::iterator | فراهم کردن یک STL-style non-const |
QJsonParseError | گزارش خطاها در حین تبدیل جیسان |
QJsonValue | گنجاندن یک مقدار در JSON |
دیدگاه خود را ثبت کنید
تمایل دارید در گفتگوها شرکت کنید؟در گفتگو ها شرکت کنید.