لغة الـ JSON: كيف تقرأ وتكتب البيانات التي تفهمها الآلات


أهلاً وسهلاً يا شباب! اليوم بنتكلم عن لغة مهمة جداً في عالم البرمجة، وهي JSON. لو أنت مطور، أكيد بتتعامل معاها كثير. ببساطة، JSON هي الطريقة اللي تتكلم فيها الآلات مع بعضها وتفهم البيانات.

وش هي JSON بالضبط؟

JSON اختصار لـ JavaScript Object Notation. لا يغرك اسمها، هي صحيح طلعت من جافاسكريبت بس صارت لغة مستقلة ومستخدمة تقريباً في كل لغات البرمجة. ليش؟ لأنها خفيفة وسهلة للقراءة والكتابة، سواء للبشر أو للآلات.

ملاحظة سريعة: فكر فيها كـ "اللغة المشتركة" اللي كل البرامج والأنظمة تقدر تفهمها عشان تبادل المعلومات.

كيف شكل بيانات JSON؟ الأساسيات

JSON تعتمد على تركيبتين أساسيتين: الكائنات (Objects) والمصفوفات (Arrays).

1. الكائنات (Objects) - مثل القاموس أو الخريطة

الكائنات تمثل مجموعة من أزواج مفتاح: قيمة (Key-Value Pairs). دايماً تبدأ بـ { وتنتهي بـ }. المفتاح لازم يكون نص (String) والقيمة ممكن تكون أي نوع بيانات JSON.

مثال:

{
  "اسم": "أحمد",
  "عمر": 30,
  "متزوج": false
}

هنا عندنا ثلاث مفاتيح: اسم، عمر، متزوج. وكل مفتاح له قيمة.

2. المصفوفات (Arrays) - مثل قائمة مرتبة

المصفوفات هي قائمة مرتبة من القيم. دايماً تبدأ بـ [ وتنتهي بـ ]. كل قيمة داخل المصفوفة ممكن تكون أي نوع بيانات JSON (نص، رقم، كائن، مصفوفة أخرى، إلخ).

مثال:

[
  "تفاح",
  "برتقال",
  "موز"
]

هذي مصفوفة فيها ثلاث نصوص.

أنواع البيانات في JSON

JSON تدعم أنواع بيانات بسيطة ومفهومة:

  • النص (String): دايماً داخل علامتي تنصيص مزدوجة "". مثال: "مرحبا بالعالم".
  • الرقم (Number): أعداد صحيحة أو عشرية. مثال: 123 أو 3.14.
  • القيمة المنطقية (Boolean): إما true أو false.
  • القيمة الفارغة (Null): تمثل عدم وجود قيمة. تكتب null.
  • الكائن (Object): مثل ما شرحنا فوق، مجموعة مفتاح: قيمة.
  • المصفوفة (Array): مثل ما شرحنا فوق، قائمة مرتبة من القيم.

مثال شامل: كيف تبدو البيانات الحقيقية؟

تخيل عندنا بيانات عن طالب ودوراته:

{
  "معرف_الطالب": "STU12345",
  "الاسم_الأول": "سارة",
  "اسم_العائلة": "العلي",
  "العمر": 22,
  "تخصص": "علوم حاسب",
  "نشيط": true,
  "دورات": [
    {
      "اسم_الدورة": "مقدمة في البرمجة",
      "الرمز": "CS101",
      "الدرجة": "A"
    },
    {
      "اسم_الدورة": "هياكل البيانات",
      "الرمز": "CS201",
      "الدرجة": "B+"
    },
    {
      "اسم_الدورة": "قواعد البيانات",
      "الرمز": "DB301",
      "الدرجة": "A-"
    }
  ],
  "معلومات_اتصال": {
    "بريد_إلكتروني": "sara.ali@example.com",
    "هاتف": null
  }
}

شوف كيف: الكائن الرئيسي فيه مفاتيح وقيم متنوعة. دورات هي مصفوفة، وكل عنصر فيها هو كائن بحد ذاته. ومعلومات_اتصال هي كائن آخر داخل الكائن الرئيسي. هذا يوريك قوة JSON في تمثيل البيانات المعقدة بشكل مرتب.

كيف نقرأ ونكتب JSON برمجياً؟

في معظم لغات البرمجة، فيه مكتبات جاهزة تسهل عليك التعامل مع JSON:

  • قراءة JSON (Parsing): لما تستقبل بيانات JSON (مثلاً من API)، تحتاج تحولها لكائن أو بنية بيانات تفهمها لغتك البرمجية. هذا يسمونه "Parsing". غالب اللغات عندها دالة مثل JSON.parse() في جافاسكريبت أو json.loads() في بايثون.
  • كتابة JSON (Stringifying/Serializing): لما تبغى ترسل بيانات من برنامجك (مثلاً لـ API آخر)، تحتاج تحول كائنات لغتك البرمجية إلى نص JSON. هذا يسمونه "Stringifying" أو "Serializing". غالب اللغات عندها دالة مثل JSON.stringify() في جافاسكريبت أو json.dumps() في بايثون.

وبس! هذي كانت لمحة سريعة ومباشرة عن JSON. أهم شيء تطلع فيه هو إنها لغة بسيطة ومرنة لتبادل البيانات، وإنها تعتمد على الكائنات والمصفوفات وأنواع بيانات محددة. أي استفسار، أنا موجود!