العمل مع JSON في PHP: التحليل والتسلسل للمبتدئين

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

مقدمة في العمل مع JSON في PHP

\n\n

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

\n\n

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

\n\n

بنهاية المقالة، ستتعلم:

\n
    \n
  • تحويل مصفوفات وكائنات PHP إلى JSON
  • \n
  • تحليل سلاسل JSON إلى مصفوفات ترابطية وكائنات
  • \n
  • معالجة الأخطاء عند العمل مع JSON
  • \n
  • استخدام هياكل البيانات المتداخلة
  • \n
\n\n

الدوال الأساسية للعمل مع JSON في PHP

\n\n

يوفر PHP دالتين رئيسيتين للعمل مع JSON:

\n\n

json_encode() — تسلسل البيانات

\n\n

تقوم الدالة json_encode() بتحويل متغير PHP (مصفوفة، كائن، سلسلة، رقم) إلى سلسلة JSON. يُسمى هذا التسلسل.

\n\n

مثال على الاستخدام الأساسي:

\n\n
<?php\n// مصفوفة ترابطية\n$user = [\n    "name" => "إيفان",\n    "age" => 28,\n    "email" => "ivan@example.com",\n    "is_active" => true\n];\n\n$json = json_encode($user);\necho $json;\n// الإخراج: {"name":"إيفان","age":28,"email":"ivan@example.com","is_active":true}\n?>
\n\n

تقوم الدالة تلقائيًا بتحويل أنواع بيانات PHP إلى أنواع JSON المقابلة:

\n
    \n
  • السلاسل → سلاسل JSON
  • \n
  • الأرقام → أرقام JSON
  • \n
  • القيم المنطقية → true/false
  • \n
  • المصفوفات → كائنات أو مصفوفات JSON (حسب المفاتيح)
  • \n
  • NULL → null
  • \n
\n\n

json_decode() — تحليل JSON

\n\n

تقوم الدالة json_decode() بالعملية العكسية — تحويل سلسلة JSON إلى متغير PHP. يُسمى هذا التحليل.

\n\n

مثال:

\n\n
<?php\n$jsonString = '{"name":"إيفان","age":28,"email":"ivan@example.com","is_active":true}';\n\n// تحليل إلى كائن (افتراضيًا)\n$userObject = json_decode($jsonString);\necho $userObject->name; // الإخراج: إيفان\n\n// تحليل إلى مصفوفة ترابطية (المعامل الثاني true)\n$userArray = json_decode($jsonString, true);\necho $userArray["name"]; // الإخراج: إيفان\n?>
\n\n

لاحظ المعامل الثاني للدالة json_decode():

\n
    \n
  • false (افتراضيًا) — يُرجع كائنات stdClass
  • \n
  • true — يُرجع مصفوفات ترابطية
  • \n
\n\n

الإمكانيات المتقدمة ومعالجة الأخطاء

\n\n

العمل مع الهياكل المتداخلة

\n\n

يدعم JSON الكائنات والمصفوفات المتداخلة. يتعامل PHP بسهولة مع هذه الهياكل:

\n\n
<?php\n// هيكل بيانات معقد\n$data = [\n    "company" => "TechCorp",\n    "employees" => [\n        ["name" => "آنا", "position" => "مطور"],\n        ["name" => "بيتر", "position" => "مصمم"],\n        ["name" => "ماريا", "position" => "مدير"]\n    ],\n    "address" => [\n        "city" => "موسكو",\n        "street" => "تفيرسكايا",\n        "building" => 10\n    ]\n];\n\n$json = json_encode($data, JSON_PRETTY_PRINT);\necho $json;\n?>
\n\n

ستكون النتيجة منسقة لسهولة القراءة بفضل العلم JSON_PRETTY_PRINT.

\n\n

معالجة الأخطاء أثناء التحليل

\n\n

عند العمل مع بيانات خارجية (API، ملفات)، من المهم التحقق من صحة JSON. استخدم الدالة json_last_error():

\n\n
<?php\n$badJson = '{"name":                

المدونات

توصيات الكتب