الأحد، 19 يناير 2014

شرح كيفية التعامل بين json و php

شرح كيفية التعامل بين json و php


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



عندما تريد ان تعرف كيفية التعامل مع json و php فان اهم شيء يمكنك معرفته هو انه عندنا 3 دوال رئيسية، والان فلنذهب لنلقي نظرة على تلك الدوال

كما أسلفت القول فالدوال المستخدمه في JSON مجرد ثلاث وهن json_decode و الأخرى json_encode والأخيرة json_last_error فقط ثلاث و شرح وظائفهم مدعم بالأمثله العملية كالتالي:
كود:


 // Example 1 $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; ------------------------------------------- object(stdClass)#1 (5)  var_dump(json_decode($json)); {     ["a"] => int(1)     ["b"] => int(2)     ["c"] => int(3)     ["d"] => int(4)     ["e"] => int(5) }

في هذا المثال قامت الداله json_decode بتحويل مصفوفة البيانات الكائنية الى PHP Objects يمكننا تمرير الطلب بين المعطيات كما نمرر الطلب بين المتغيرات Variables في التصنيفات Classes و هذه بوجهة نظري طريقة معقده و سيئة إلى حداً ما للتعاطي مع البيانات المتوفره كوني أريد أن أتعامل مع شيء أكثر ليونه و يقبل المعالجة بشكل أكبر و أسهل, هنالك الطريقة الأخرى لتحويل البيانات الى مصفوفة PHP Array بشكل مباشر وهي الطريقة التي أفضلها لأنها أيسر للعمل وتعطيني كم أكبر من القدره في التعامل مع المعطيات و البيانات وهي كما نطبق في المثال الثاني
كود:


$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; var_dump(json_decode($json, true)); ------------------------------------------ array(5) {     ["a"] => int(1)     ["b"] => int(2)     ["c"] => int(3)     ["d"] => int(4)     ["e"] => int(5) }

هنا تم تحويل المعطيات إلى مصفوفة PHP Array توازي في تنظيمها النمطي JSON و في ذلك تسهيل كبير للإستخدام أي آنك ستقوم بمعالجة البيانات بشكل مصفوفة عاديه و تستطيع أن تحافظ على نمطها الأصلي و أن تقوم بإعادتها بعد المعالجة إلى نوعها الأول JSON وهذه ليونه كبيره في المعالجة و يوفر على المطور الكم الكبير من العناء وخصوصاً في مجال تخزين البيانات وفرزها و فهرستها.
بالنسبه للدالة الثانيه json_encode في تحويل العملية الى العكس الأخر وهي من PHP Array إلى JSON من جديد و هذا هو الفصل الذي يعطينا الفائدة من إستخدام هذه المكتبة في PHP لكي نستطيع توليد بعض المعلومات كملف أو ما يقابله لنستطيع تمرير المعلومات و معالجتها, لن أطيل الحديث وسأتوجه إلى الشرح العملي وهو كالتالي
كود:


$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); echo json_encode($arr); ------------------------------------------ {"a":1,"b":2,"c":3,"d":4,"e":5}

هذا يعيد لنا النص إلى شكله الأول كيف حصلنا عليه ليتم إستخدامه أو تخزينه في قاعدة بيانات لتتم إعادة إستخدامه ليوفر لنا الحاجات من تخزين البيانات أو تمرير المعلومات بين البرامج المختلفة بمختلف لغات برمجتها, لا تحتمل الدالة الشرح الكثير بقدر التطبيق المتكرر لفهم العملية بشكل أعمق فهمي بسيطة الإستخدام و عظيمة الفعل.
الآن إلى الدالة الأخيرة و هي json_last_erroeهذه الدالة تقوم بإرجاع الأخطاء التي تحصل وقت التنفيذ فكما نعلم إن لكل تطبيق برمجي إحتمال حدوث خطاء معين قد يوقف العملية كلها فلذلك تم توفير هذه الدالة مع بعض الجمل الثابته من نوع Define سأختصر الحديث الكثير بتوفير مثال فعادتاً مثال واحد يغني عن أللف سطر من الشرح
كود:


// A valid json string $json[] = '{"Organization": "PHP Documentation Team"}';  // An invalid json string which will cause an syntax  // error, in this case we used ' instead of " for quotation $json[] = "{'Organization': 'PHP Documentation Team'}";  foreach ($json as $string) {     echo 'Decoding: ' . $string;     json_decode($string);      switch (json_last_error()) {         case JSON_ERROR_NONE:             echo ' - No errors';         break;         case JSON_ERROR_DEPTH:             echo ' - Maximum stack depth exceeded';         break;         case JSON_ERROR_STATE_MISMATCH:             echo ' - Underflow or the modes mismatch';         break;         case JSON_ERROR_CTRL_CHAR:             echo ' - Unexpected control character found';         break;         case JSON_ERROR_SYNTAX:             echo ' - Syntax error, malformed JSON';         break;         case JSON_ERROR_UTF8:             echo ' - Malformed UTF-8 characters, possibly incorrectly encoded';         break;         default:             echo ' - Unknown error';         break;     }      echo PHP_EOL; }

سوف يظهر عندنا المرتجع كما يلي
كود:


Decoding: {"Organization": "PHP Documentation Team"} - No errors Decoding: {'Organization': 'PHP Documentation Team'} - Syntax error, malformed JSON

المثال هذا يشرح كيفية الإستخدام لهذه الدالة التي تقوم بتوقع الاخطاء بحسب الكلمات المحجوزه بشكل مسبق .. فقط إقراء المثال و تبينه بشكل صحيح ستأخذ منه فكرة العمل كاملة للدالة مع الكلمات المحجوزة.
أعتقد آن الشرح كافي كونه موجه للمطورين و ليس لمتعلمي اللغة أو اسلوب البرمجه بشكل مبدئي و لهذا لن أخوض كثيراً و جدير بالذكر بأن جميع الأمثله قمت بأخذها بشكل مباشر من الموقع الرسمي للغة PHP.NET و أيضاً آن هذه التقنيه مستورده من Javascript و معنى JSON JavaScript Object Notation وهذا يوضح المعنى..

اتمنى ان يكون كل واحد قد استفاد من هذه المعلومات، واستفاد
وعرف كيف يتم التعامل مع json و php
الى هنا يكفي هذا القدر من كيفية التعامل مع json و php
اتمنى ان تكونوا دائما بخير

هناك تعليق واحد:

  1. Harrah's Hotel & Casino - Mapyro
    Find 경상북도 출장마사지 harrah's casino 의왕 출장마사지 and other parking lots, street 진주 출장샵 parking, restaurants and other lodging near Harrah's Hotel and 과천 출장마사지 Casino in 밀양 출장마사지 Atlantic City.

    ردحذف