13. JSON — جے سان
Difficulty: Intermediate — متوسط
Time: ~20 minutes
What is JSON? — جے سان کیا ہے؟
JSON (JavaScript Object Notation) is a text format for storing and sending structured data. Urdu PL has built-in JSON support — no import needed.
اردو: JSON ڈیٹا کو متن کے طور پر محفوظ کرنے اور بھیجنے کا طریقہ ہے۔ اردو PL میں یہ بلٹ-ان ہے — درآمد کی ضرورت نہیں۔
Object to JSON — شے سے جے سان
JSON_لکھو() converts any object/list to a JSON string:
متغیر شخص = { نام: "احمد", عمر: 25, شہر: "کراچی" };
لکھو(JSON_لکھو(شخص));
// {"نام": "احمد", "عمر": 25, "شہر": "کراچی"}
// List to JSON
لکھو(JSON_لکھو([1, 2, 3, "اردو"]));
// [1, 2, 3, "اردو"]
// Booleans and null
لکھو(JSON_لکھو({ فعال: سچ, قدر: خالی }));
// {"فعال": true, "قدر": null}
Pretty Print — صاف فارمیٹ
Pass an indent number for readable output:
متغیر ڈیٹا = {
طلباء: [
{ نام: "احمد", نمبر: 85 },
{ نام: "فاطمہ", نمبر: 92 }
],
مجموع: 2
};
لکھو(JSON_لکھو(ڈیٹا, 2));
Output:
اردو:
JSON_لکھو(ڈیٹا, 2)— دوسرا پیرامیٹر انڈینٹ (space count) ہے۔ بغیر انڈینٹ ایک سطر میں آتا ہے۔
JSON to Object — جے سان سے شے
JSON_پڑھو() parses a JSON string back to an object:
متغیر json_م = "{\"نام\": \"علی\", \"عمر\": 30}";
متغیر آبجیکٹ = JSON_پڑھو(json_م);
لکھو(آبجیکٹ["نام"]); // علی
لکھو(آبجیکٹ["عمر"]); // 30
اردو:
JSON_پڑھو()JSON متن کو واپس شے یا فہرست میں بدلتا ہے۔
Round-Trip — آمد و رفت
متغیر اصل = {
زبان: "اردو",
نسخہ: 1,
خصوصیات: ["متغیر", "فنکشن", "کلاس"]
};
// Serialize
متغیر json_s = JSON_لکھو(اصل);
لکھو(json_s);
// Deserialize
متغیر بحال = JSON_پڑھو(json_s);
لکھو(بحال["زبان"]);
لکھو(بحال["خصوصیات"][0]); // متغیر
JSON with Files — جے سان اور فائلیں
Save and load JSON data from disk:
درآمد { فائل_لکھو, فائل_پڑھو } سے "اردو/فائلیں";
// Save to file
متغیر ترتیبات = { زبان: "اردو", تھیم: "تاریک", فونٹ: 14 };
فائل_لکھو("ترتیبات.json", JSON_لکھو(ترتیبات, 2));
// Load from file
متغیر لوڈ = JSON_پڑھو(فائل_پڑھو("ترتیبات.json"));
لکھو(لوڈ["تھیم"]); // تاریک
JSON Type Mapping — اقسام کا تبادلہ
| JSON Type | Urdu PL |
|---|---|
string |
متن |
number |
عدد |
boolean true |
سچ |
boolean false |
جھوٹ |
null |
خالی |
array [...] |
فہرست |
object {...} |
شے |
Practical Example: Student Records — عملی مثال: طلباء کا ریکارڈ
درآمد { فائل_لکھو, فائل_پڑھو, فائل_موجود } سے "اردو/فائلیں";
فنکشن ریکارڈ_محفوظ(فائل_ر, ریکارڈ) {
فائل_لکھو(فائل_ر, JSON_لکھو(ریکارڈ, 2));
}
فنکشن ریکارڈ_لوڈ(فائل_ر) {
اگر (نہیں فائل_موجود(فائل_ر)) { واپس []; }
واپس JSON_پڑھو(فائل_پڑھو(فائل_ر));
}
متغیر طلباء = [
{ نام: "احمد", نمبر: 85 },
{ نام: "فاطمہ", نمبر: 92 }
];
ریکارڈ_محفوظ("طلباء.json", طلباء);
متغیر لوڈ = ریکارڈ_لوڈ("طلباء.json");
لکھو(`${لوڈ[0].نام}: ${لوڈ[0].نمبر}`); // احمد: 85
Key Points — اہم نکات
JSON_لکھو(شے)— object/list → JSON string (built-in, no import)JSON_لکھو(شے, 2)— pretty-print with 2-space indentJSON_پڑھو(متن)— JSON string → object/listسچ→true,جھوٹ→false,خالی→nullin JSON- Combine with
فائل_لکھو/پڑھوto persist data to disk
اردو:
JSON_لکھوشے کو متن میں،JSON_پڑھومتن کو شے میں بدلتا ہے — کوئی درآمد نہیں چاہیے۔