تخيل كل برامج الدنيا تتكلم لغات مختلفة: بايثون، جافا سكريبت، روبي... كيف تتبادل المعلومات؟ اتفقوا على بطاقة تعارف موحدة اسمها JSON — كل برنامج بالعالم يفهمها!
شكلها بسيط جداً — أزواج "اسم: قيمة" بين قوسين معقوصين:
{
"name": "فليكس",
"age": 17,
"hobbies": ["برمجة", "ألعاب"]
}وبايثون نتعامل معها بسلاسة تامة، لأن شكلها قريب من القاموس اللي تعرفه:
import json
me = {"name": "فليكس", "age": 17, "hobbies": ["برمجة", "ألعاب"]}
# نحول قاموس بايثون إلى نص JSON
text = json.dumps(me, ensure_ascii=False)
print(text)
# ونرجعه نص JSON إلى قاموس
back = json.loads(text)
print(back["hobbies"][0]) # برمجةdumps تعني "حوّل لسلسلة نصية"، وloads "حمّل من نص". والسطر ensure_ascii=False هو سر اللغة العربية — بدونه تطلع الحروف العربية كأرقام غريبة! احفظه.
والأهم: حفظ بياناتك بملف JSON — هذي أفضل طريقة تحفظ فيها إعدادات لعبتك أو قائمة أصدقائك:
import json
me = {"name": "فليكس", "score": 950}
# الحفظ
with open("player.json", "w", encoding="utf-8") as f:
json.dump(me, f, ensure_ascii=False)
# القراءة
with open("player.json", encoding="utf-8") as f:
loaded = json.load(f)
print("نقاطك المحفوظة:", loaded["score"])احفظ الفرق بذكاء: dump وload تشتغل مع ملف، وdumps وloads تشتغل مع نص. الـ s الزايدة تعني string!
وين تستخدم JSON بالحقيقة؟ كل مكان تقريباً: حفظ نقاط الألعاب، إعدادات البرامج، مواقع التواصل ترسل بياناتها JSON، والذكاء الاصطناعي يستقبل الطلبات JSON. من اليوم، بياناتك تتكلم لغة عالمية.