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

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

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

ابدأ الدورة

مقدمة عن JSON وPHP



JSON (JavaScript Object Notation) هو تنسيق خفيف لتبادل البيانات أصبح المعيار الفعلي للتفاعل بين خوادم الويب والعملاء. في تطوير الويب الحديث باستخدام PHP، ستواجه JSON في كل مكان: من طلبات API إلى ملفات التكوين وتخزين البيانات المنظمة.



في هذه المقالة، سنشرح عمليتين أساسيتين للعمل مع JSON في PHP:



  • التسلسل — تحويل مصفوفة أو كائن PHP إلى سلسلة JSON (دالة json_encode()).
  • التحليل (إلغاء التسلسل) — التحويل العكسي لسلسلة JSON إلى متغير PHP (دالة json_decode()).


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



تسلسل البيانات: دالة json_encode()



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



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



أبسط حالة هي تسلسل مصفوفة ترابطية:



<?php$user = [    "name" => "إيفان بيتروف",    "age" => 28,    "email" => "ivan@example.com",    "is_active" => true];

$jsonString = json_encode($user, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);echo $jsonString;?>


نتيجة التنفيذ:



{    "name": "إيفان بيتروف",    "age": 28,    "email": "ivan@example.com",    "is_active": true}


لاحظ العلامات:

  • JSON_UNESCAPED_UNICODE — تسمح بالحفاظ على الأحرف العربية (بدون هذه العلامة، سيتم تحويل الأحرف العربية إلى \\uXXXX).
  • JSON_PRETTY_PRINT — تنسيق الإخراج مع مسافات بادئة لسهولة القراءة (مفيد للتصحيح، لكنه يزيد حجم السلسلة).


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



يمكن أيضًا تسلسل كائنات PHP. سيتم تضمين الخصائص العامة فقط:



<?phpclass Product {    public $id;    public $title;    private $secretPrice; // لن يتم تضمينه في JSON

public function __construct($id, $title, $price) { $this->id = $id; $this->title = $title; $this->secretPrice = $price; }}

$product = new Product(1, "لابتوب", 75000);echo json_encode($product, JSON_UNESCAPED_UNICODE);// الإخراج: {"id":1,"title":"لابتوب"}?>


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



يدعم JSON التداخل. يتم تحويل مصفوفات PHP بأي عمق بشكل صحيح:



<?php$data = [    "company" => "TechCorp",    "employees" => [        ["name" => "آنا", "position" => "مطور"],        ["name" => "بوريس", "position" => "مصمم"]    ],    "address" => [        "city" => "موسكو",        "street" => "تفيرسكايا"    ]];

echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);?>


تحليل JSON: دالة json_decode()



التحليل (إلغاء التسلسل) هو العملية العكسية: من سلسلة JSON نحصل على بيانات يمكن لـ PHP العمل بها.



الحصول على كائن



بشكل افتراضي، تقوم json_decode() بإرجاع كائن من الفئة stdClass:



<?php$jsonString = '{"name":"إيفان بيتروف","age":28,"email":"ivan@example.com"}';$user = json_decode($jsonString);

echo $user->name; // إيفان بيتروفecho $user->age; // 28echo $user->email; // ivan@example.com?>


الحصول على مصفوفة



إذا قمت بتمرير الوسيطة الثانية true، فستعيد الدالة مصفوفة ترابطية:



&l                

المدونات

توصيات الكتب