JSON چییە؟
JSON کورتکراوەی (JavaScript Object Notation)ـە. ئەمە فۆرماتێکی سووک و سادەیە بۆ گواستنەوەی داتا کە لەلایەن مرۆڤەوە بە ئاسانی دەخوێنرێتەوە و لەلایەن کۆمپیوتەر و زمانەکانی بەرنامەسازییەوە بە خێرایی شیکار (parse) دەکرێت.
لە بنەڕەتدا JSON بۆ زمانی جاڤاسکریپت دروستکراوە، بەڵام ئێستا بووەتە ستانداردێکی جیهانی بۆ گۆڕینەوەی داتا لە نێوان سێرڤەر و کڵایەنت (Client-Server Communication).
بۆچی JSON بەکاردێنین؟
کاتێک داتایەک لە سێرڤەرێکەوە وەردەگریت، ئەو داتایە ناتوانێت ڕاستەوخۆ وەک ئۆبجێکتێکی جاڤاسکریپت بنێردرێت. بۆیە دەبێت بکرێتە فۆرماتی JSON. سوودەکانی بریتین لە:
- خێرایی لە گواستنەوەدا.
- پشتیوانی لەلایەن هەموو زمانەکانی وەک PHP, Python, Java, و JavaScript.
- سادەیی لە پێکهاتەدا.
گۆڕینی ئۆبجێکت بۆ JSON (Serialization)
بۆ ئەوەی ئۆبجێکتێک بنێریت بۆ سێرڤەر، دەبێت بیگۆڕیت بۆ دەق. بۆ ئەم مەبەستە فەرمانی JSON.stringify() بەکاردێنین.
const user = { name: "Sara", age: 25, city: "Erbil" };
const jsonString = JSON.stringify(user);
console.log(jsonString); // دەردەچێت: {"name":"Sara","age":25,"city":"Erbil"}لە نموونەکەدا، ئۆبجێکتەکە بوو بە دەق. تێبینی بکە کە کلیلەکان ئێستا لەناو دوو نیشانەی تەنیشت یەک (double quotes) دان.
گۆڕینی JSON بۆ ئۆبجێکت (Deserialization)
کاتێک داتایەکت لە سێرڤەرەوە بە فۆرماتی JSON پێ دەگات، ناتوانیت ڕاستەوخۆ دەستکاری بکەیت. دەبێت بە JSON.parse() بیگۆڕیتەوە بۆ ئۆبجێکت.
const jsonText = '{"name":"Sara","age":25}';
const userObj = JSON.parse(jsonText);
console.log(userObj.name); // دەردەچێت: Saraئەم کردارە ڕێگەت پێ دەدات داتاکان بە ئاسانی لەناو پرۆگرامەکەتدا بەکاربهێنیتەوە.
JSON.parse() هەڵە (Error) دەدات و بەرنامەکەت دەوەستێت. هەمیشە دڵنیا ببەرەوە لە دروستیی داتاکە.یاساکانی نووسینی JSON
بۆ ئەوەی JSON-ەکەت دروست بێت، دەبێت ئەم یاسایانە ڕەچاو بکەیت:
- کلیلەکان (Keys) دەبێت هەمیشە لەناو " " بن.
- نرخەکان (Values) دەبێت یەکێک بن لەم جۆرانە: String, Number, Object, Array, Boolean, یان null.
- ناکرێت کۆمێنت (Comment) لەناو فایلەکانی JSON-دا هەبێت.
- کۆتا کلیل لە ئۆبجێکتەکەدا نابێت کۆما (,)ـی لەدوای بێت.
نموونەی ئاڵۆزتر
JSON دەتوانێت ئۆبجێکت و ئەڕەی (Array) تێکەڵ بکات:
const data = {
"students": ["Ali", "Sara", "Karwan"],
"active": true
};
const json = JSON.stringify(data);
console.log(json);ڕاهێنان
هەوڵ بدە ئەم ئۆبجێکتەی خوارەوە بگۆڕیت بۆ JSON و پاشان بیگۆڕیتەوە بۆ ئۆبجێکت و تەنها تەمەنەکەی (age) چاپ بکەیت:
const myData = {name: "Ahmad", age: 30};