← العودة إلى المدونة

ما هو JSON؟ دليل شامل للمبتدئين

تعلم ما هو JSON، قواعد الصياغة، أنواع البيانات، وحالات الاستخدام. دليل شامل للمبتدئين لفهم JavaScript Object Notation وأهميته في تطوير البرمجيات الحديثة.

Big JSON Team12 دقيقة للقراءةbasics
B

Big JSON Team

Technical Writer

Expert in JSON data manipulation, API development, and web technologies. Passionate about creating tools that make developers' lives easier.

12 دقيقة قراءة

# ما هو JSON؟ دليل شامل للمبتدئين

JSON (JavaScript Object Notation) أصبح المعيار الفعلي لتبادل البيانات على الويب. سواء كنت مبرمجاً مبتدئاً، محلل بيانات، أو فقط فضولياً حول تقنيات الويب، فإن فهم JSON ضروري في المشهد الرقمي اليوم.

ما معنى JSON؟

JSON تعني JavaScript Object Notation (تدوين كائنات جافا سكريبت). على الرغم من اسمه، JSON هو تنسيق بيانات مستقل عن اللغة يمكن استخدامه مع أي لغة برمجة تقريباً، بما في ذلك Python وJava وC# وPHP وبالطبع JavaScript.

أصل JSON

تم تقديم JSON بواسطة دوغلاس كروكفورد في أوائل العقد الأول من القرن الحادي والعشرين كبديل خفيف لـ XML لتبادل البيانات. جعلت بساطته وسهولة قراءته منه الخيار المفضل بسرعة لواجهات برمجة تطبيقات الويب وملفات التكوين.

لماذا JSON مهم في 2026؟

في تطوير البرمجيات الحديثة، JSON موجود في كل مكان:

  • واجهات برمجة تطبيقات الويب (Web APIs): تستخدم واجهات REST APIs بشكل أساسي JSON لحمولات الطلبات والاستجابات
  • ملفات التكوين: تستخدم التطبيقات ملفات .json للإعدادات والتكوينات
  • قواعد بيانات NoSQL: تخزن MongoDB وقواعد البيانات المشابهة البيانات بتنسيقات تشبه JSON
  • تبادل البيانات: تتواصل الأنظمة عن طريق تمرير JSON بين الخدمات
  • الذكاء الاصطناعي والتعلم الآلي: غالباً ما تستخدم تكوينات النماذج ومجموعات البيانات JSON

صياغة وبنية JSON

قواعد الصياغة الأساسية

تتبع صياغة JSON هذه القواعد الأساسية:

  • البيانات في أزواج اسم/قيمة: "name": "value"
  • البيانات مفصولة بفواصل: ,
  • الأقواس المعقوفة تحتوي على كائنات: {}
  • الأقواس المربعة تحتوي على مصفوفات: []
  • يجب أن تستخدم النصوص علامات اقتباس مزدوجة: "text"
  • مثال JSON بسيط

    {
    

    "الاسم": "أحمد محمد",

    "العمر": 30,

    "المدينة": "الرياض"

    }

    هذا كائن JSON بسيط يحتوي على ثلاثة أزواج من المفتاح والقيمة.

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

    يدعم JSON ستة أنواع من البيانات:

    1. النصوص (Strings)

    النصوص يجب أن تكون محاطة بعلامات اقتباس مزدوجة:

    {
    

    "الاسم": "أحمد محمد",

    "الوظيفة": "مهندس برمجيات",

    "الرسالة": "مرحباً بالعالم!"

    }

    2. الأرقام (Numbers)

    تشمل الأرقام الصحيحة والعشرية، الموجبة والسالبة:

    {
    

    "العمر": 30,

    "الارتفاع": 175.5,

    "الحرارة": -5,

    "المسافة": 1.5e10

    }

    3. القيم المنطقية (Booleans)

    القيم المنطقية إما true أو false:

    {
    

    "نشط": true,

    "محذوف": false,

    "مؤكد": true

    }

    4. القيمة Null

    يمثل null قيمة فارغة أو غير موجودة:

    {
    

    "اسمالأب": null,

    "الهاتفالثانوي": null

    }

    5. المصفوفات (Arrays)

    المصفوفات هي قوائم مرتبة من القيم:

    {
    

    "الألوان": ["أحمر", "أزرق", "أخضر"],

    "الأرقام": [1, 2, 3, 4, 5],

    "مختلط": [1, "نص", true, null]

    }

    6. الكائنات (Objects)

    الكائنات هي مجموعات من أزواج المفتاح والقيمة:

    {
    

    "المستخدم": {

    "الاسم": "أحمد محمد",

    "العمر": 30,

    "العنوان": {

    "المدينة": "الرياض",

    "الشارع": "شارع الملك فهد",

    "الرمزالبريدي": "12345"

    }

    }

    }

    أمثلة عملية شاملة

    مثال 1: ملف تعريف المستخدم

    {
    

    "id": 12345,

    "اسمالمستخدم": "ahmed_mohammed",

    "الاسمالكامل": "أحمد محمد العلي",

    "البريدالإلكتروني": "ahmed@example.com",

    "العمر": 30,

    "تاريخالميلاد": "1996-05-15",

    "نشط": true,

    "الأدوار": ["مستخدم", "مدير", "محرر"],

    "الإعدادات": {

    "اللغة": "ar",

    "المنطقةالزمنية": "Asia/Riyadh",

    "الإشعارات": {

    "البريدالإلكتروني": true,

    "الرسائلالنصية": false,

    "الدفع": true

    }

    },

    "العنوان": {

    "الشارع": "شارع الملك فهد",

    "المدينة": "الرياض",

    "المنطقة": "الرياض",

    "الدولة": "السعودية",

    "الرمزالبريدي": "12345"

    },

    "الهوايات": ["القراءة", "البرمجة", "السفر"],

    "تاريخالتسجيل": "2020-01-15T10:30:00Z",

    "آخرتسجيلدخول": "2026-01-26T09:15:00Z"

    }

    مثال 2: استجابة API

    {
    

    "الحالة": "نجاح",

    "رمزالحالة": 200,

    "الرسالة": "تم جلب البيانات بنجاح",

    "البيانات": {

    "المستخدمون": [

    {

    "id": 1,

    "الاسم": "أحمد محمد",

    "البريدالإلكتروني": "ahmed@example.com",

    "نشط": true

    },

    {

    "id": 2,

    "الاسم": "فاطمة علي",

    "البريدالإلكتروني": "fatima@example.com",

    "نشط": true

    }

    ],

    "إجماليالصفحات": 10,

    "الصفحةالحالية": 1,

    "العددلكلصفحة": 20

    },

    "الوقت": "2026-01-26T10:30:00Z"

    }

    مثال 3: ملف تكوين التطبيق

    {
    

    "اسمالتطبيق": "تطبيقي الرائع",

    "الإصدار": "2.1.0",

    "البيئة": "production",

    "قاعدةالبيانات": {

    "النوع": "postgresql",

    "المضيف": "localhost",

    "المنفذ": 5432,

    "اسمقاعدةالبيانات": "myapp_db",

    "المستخدم": "db_user",

    "الحدالأقصىللاتصالات": 100

    },

    "الخادم": {

    "المنفذ": 3000,

    "المضيف": "0.0.0.0",

    "بروتوكولhttps": true

    },

    "التسجيل": {

    "المستوى": "info",

    "المسار": "/var/log/myapp",

    "الحجمالأقصى": "100MB"

    },

    "الميزات": {

    "المصادقة": true,

    "الدفع": true,

    "التحليلات": false

    }

    }

    مزايا JSON

    1. سهولة القراءة للإنسان

    JSON سهل القراءة والكتابة للبشر بفضل صياغته البسيطة والواضحة.

    2. خفيف الوزن

    حجم ملف JSON أصغر بكثير من XML، مما يجعل نقل البيانات أسرع وأكثر كفاءة.

    3. سهولة التحليل

    معظم لغات البرمجة لديها مكتبات مدمجة أو جاهزة لتحليل وإنشاء JSON.

    4. مستقل عن اللغة

    على الرغم من اسمه، يمكن استخدام JSON مع أي لغة برمجة تقريباً.

    5. يدعم الهياكل المعقدة

    يمكن لـ JSON تمثيل هياكل بيانات معقدة من خلال التداخل والمصفوفات.

    JSON في لغات البرمجة المختلفة

    JavaScript

    // تحويل نص JSON إلى كائن JavaScript
    

    const jsonString = '{"الاسم":"أحمد","العمر":30}';

    const obj = JSON.parse(jsonString);

    console.log(obj.الاسم); // "أحمد"

    // تحويل كائن JavaScript إلى نص JSON

    const user = {

    الاسم: "أحمد محمد",

    العمر: 30,

    المدينة: "الرياض"

    };

    const jsonOutput = JSON.stringify(user);

    console.log(jsonOutput); // {"الاسم":"أحمد محمد","العمر":30,"المدينة":"الرياض"}

    Python

    import json
    
    

    # تحويل نص JSON إلى كائن Python

    json_string = '{"الاسم":"أحمد","العمر":30}'

    data = json.loads(json_string)

    print(data['الاسم']) # "أحمد"

    # تحويل كائن Python إلى نص JSON

    user = {

    "الاسم": "أحمد محمد",

    "العمر": 30,

    "المدينة": "الرياض"

    }

    json_output = json.dumps(user, ensure_ascii=False)

    print(json_output)

    Java

    import com.google.gson.Gson;
    
    

    // تحويل نص JSON إلى كائن Java

    Gson gson = new Gson();

    String jsonString = "{"name":"أحمد","age":30}";

    User user = gson.fromJson(jsonString, User.class);

    // تحويل كائن Java إلى نص JSON

    User newUser = new User("أحمد محمد", 30);

    String json = gson.toJson(newUser);

    PHP

    <?php
    

    // تحويل نص JSON إلى مصفوفة PHP

    $jsonString = '{"الاسم":"أحمد","العمر":30}';

    $data = json_decode($jsonString, true);

    echo $data['الاسم']; // "أحمد"

    // تحويل مصفوفة PHP إلى نص JSON

    $user = [

    'الاسم' => 'أحمد محمد',

    'العمر' => 30,

    'المدينة' => 'الرياض'

    ];

    $jsonOutput = json_encode($user, JSON_UNESCAPED_UNICODE);

    echo $jsonOutput;

    ?>

    حالات الاستخدام الحقيقية

    1. واجهات برمجة التطبيقات REST

    معظم واجهات REST APIs الحديثة تستخدم JSON كتنسيق لتبادل البيانات:

    // طلب POST
    

    {

    "الاسم": "أحمد محمد",

    "البريدالإلكتروني": "ahmed@example.com"

    }

    // استجابة

    {

    "الحالة": "نجاح",

    "البيانات": {

    "id": 123,

    "الاسم": "أحمد محمد",

    "تاريخالإنشاء": "2026-01-26"

    }

    }

    2. ملفات التكوين

    العديد من الأدوات والأطر تستخدم JSON للتكوين:

    • package.json: في مشاريع Node.js
    • tsconfig.json: لتكوين TypeScript
    • composer.json: في مشاريع PHP
    • .eslintrc.json: لتكوين ESLint

    3. قواعد البيانات NoSQL

    قواعد بيانات مثل MongoDB تخزن البيانات بتنسيق BSON (نسخة ثنائية من JSON):

    {
    

    "_id": ObjectId("507f1f77bcf86cd799439011"),

    "الاسم": "أحمد محمد",

    "العمر": 30,

    "الطلبات": [

    {

    "رقمالطلب": "ORD-001",

    "المبلغ": 150.50,

    "التاريخ": ISODate("2026-01-26")

    }

    ]

    }

    4. تطبيقات الجوال

    تطبيقات iOS وAndroid تتواصل مع الخوادم باستخدام JSON APIs.

    5. تخزين المتصفح

    تستخدم واجهات برمجة التطبيقات مثل localStorage وsessionStorage JSON لتخزين البيانات:

    // تخزين البيانات
    

    const userData = {

    الاسم: "أحمد",

    المفضلات: ["برمجة", "قراءة"]

    };

    localStorage.setItem('user', JSON.stringify(userData));

    // استرجاع البيانات

    const storedUser = JSON.parse(localStorage.getItem('user'));

    أفضل الممارسات

    1. استخدم تسمية متسقة

    اختر نمط تسمية والتزم به عبر ملفات JSON الخاصة بك:

    // ✓ جيد - camelCase متسق
    

    {

    "firstName": "أحمد",

    "lastName": "محمد",

    "emailAddress": "ahmed@example.com"

    }

    // ✗ سيء - تسمية غير متسقة

    {

    "first_name": "أحمد",

    "LastName": "محمد",

    "email-address": "ahmed@example.com"

    }

    2. استخدم أسماء مفاتيح وصفية

    اجعل أسماء المفاتيح واضحة ووصفية:

    // ✓ جيد
    

    {

    "عنوانالبريدالإلكتروني": "ahmed@example.com",

    "رقمالهاتف": "+966501234567"

    }

    // ✗ سيء

    {

    "e": "ahmed@example.com",

    "p": "+966501234567"

    }

    3. تجنب التداخل العميق

    حاول إبقاء التداخل ضحلاً (3-4 مستويات كحد أقصى):

    // ✓ مقبول
    

    {

    "المستخدم": {

    "العنوان": {

    "المدينة": "الرياض"

    }

    }

    }

    // ✗ عميق جداً

    {

    "أ": {

    "ب": {

    "ج": {

    "د": {

    "ه": {

    "قيمة": "صعب القراءة"

    }

    }

    }

    }

    }

    }

    4. تحقق من صحة JSON

    استخدم أدوات التحقق من الصحة للتأكد من أن JSON الخاص بك صالح.

    5. استخدم المسافات البادئة للقراءة

    عند كتابة JSON يدوياً، استخدم مسافات بادئة للوضوح:

    {
    

    "الاسم": "أحمد",

    "العنوان": {

    "المدينة": "الرياض",

    "الشارع": "شارع الملك فهد"

    }

    }

    6. استخدم المصفوفات للبيانات المتكررة

    // ✓ جيد
    

    {

    "المنتجات": [

    {"id": 1, "الاسم": "منتج 1"},

    {"id": 2, "الاسم": "منتج 2"}

    ]

    }

    // ✗ سيء

    {

    "منتج1": {"id": 1, "الاسم": "منتج 1"},

    "منتج2": {"id": 2, "الاسم": "منتج 2"}

    }

    الأخطاء الشائعة وكيفية تجنبها

    1. الفواصل الزائدة

    // ✗ خطأ - فاصلة زائدة
    

    {

    "الاسم": "أحمد",

    "العمر": 30,

    }

    // ✓ صحيح

    {

    "الاسم": "أحمد",

    "العمر": 30

    }

    2. استخدام علامات اقتباس مفردة

    // ✗ خطأ
    

    {

    'الاسم': 'أحمد'

    }

    // ✓ صحيح

    {

    "الاسم": "أحمد"

    }

    3. التعليقات

    JSON لا يدعم التعليقات رسمياً:

    // ✗ غير مدعوم في JSON القياسي
    

    {

    // هذا تعليق

    "الاسم": "أحمد"

    }

    أدوات JSON المفيدة

  • JSONLint: للتحقق من صحة JSON
  • JSON Formatter: لتنسيق وتجميل JSON
  • JSON Editor Online: لتحرير JSON بصرياً
  • jq: أداة سطر أوامر للعمل مع JSON
  • الملخص

    JSON هو:

    • بسيط وسهل الفهم: صياغة واضحة ومباشرة
    • خفيف الوزن: حجم ملف صغير مقارنة بـ XML
    • سريع: تحليل وإنشاء سريع
    • مستقل عن اللغة: يعمل مع جميع لغات البرمجة تقريباً
    • عالمي: مدعوم على نطاق واسع ومستخدم في كل مكان
    • موحد: محدد بواسطة RFC 8259

    في عالم التطوير الحديث، JSON ليس مجرد تنسيق بيانات - إنه اللغة المشتركة التي تتحدث بها الأنظمة المختلفة مع بعضها البعض. من واجهات برمجة التطبيقات إلى قواعد البيانات إلى ملفات التكوين، JSON موجود في كل مكان. فهم JSON جيداً هو مهارة أساسية لأي مطور في 2026 وما بعده.

    ابدأ باستخدام JSON اليوم، واكتشف كيف يمكن أن يبسط عملية تبادل البيانات في تطبيقاتك!

    Share:

    مقالات ذات صلة

    Read in English