عبارتJSON مخففJavaScript Object Notation است و روشي براي ذخيره وتبادل داده هاست. بنا براين فرمتJSON مبناي متني دارد وآن بسادگي تبادل اطلاعات با سرور دارد .فرمتJSON در بيشتر زبانهاي برنامه نويسي استفاده ميشود.
phpداراي چندتابع داخلي براي كار بافرمتJSON دارد .در اين بخش دو تابع زير،كه در اين ارتباط هستند بررسي ميشوند.
1ـ تابعJson_encode( )
2ـ تابعJson_decode
اين تابع آرايه هايphp را بفرمت JSON تبديل مي نمايد .
مثال ـ در مثال زير با استفاده تابع فوق آرايه انجمنيphp بفرمتJSON تبديل ميشود.
<?php $age = array("Peter"=>35, "Ben"=>37, "Joe"=>43); echo json_encode($age); ?>
مثال ـ دراين مثال با تابعJson_encode( ) ياك آرايه انديس دار به فرمتJSON تبديل ميشود.
<?php $cars = array("Volvo", "BMW", "Toyota"); echo json_encode($cars); ?>
تابعJson_decode( ) براي تبديل يك شيJSON بهPHP در آرايه انجمني ويا شي داده اي
مثال ـ در مثال زير داده فرمتJSON را به فرمت شيPHP تبديل ميكند.
<?php $jsonobj = '{"Peter":35,"Ben":37,"Joe":43}'; var_dump(json_decode($jsonobj)); ?>
تابعJson_decode بصورت پيش فرض يك شي داده اي توليد ميكند .اما تابع شامل پارامتر دومي است كه اگرTRUE منظور شود، يك آرايه انجمني توليد ميكند .بمثال زير توجه كنيد.
مثال ـ در مثال زير داده فرمتJSON را بيك آرايه انجمني تبديل ميكند.
<?php $jsonobj = '{"Peter":35,"Ben":37,"Joe":43}'; var_dump(json_decode($jsonobj, true)); ?>
در ادامه دو مثال آمده كه روش استفادهphp را از داده هاي رمزگشائي (decode) نشان ميدهد. يكي براي شي داده اي وديگري آرايه انجمني
مثال ـ در مثال زير دسترسي به مقاديرPHP object
<?php $jsonobj = '{"Peter":35,"Ben":37,"Joe":43}'; $obj = json_decode($jsonobj); echo $obj->Peter; echo $obj->Ben; echo $obj->Joe; ?>
مثال ـ دراسكريپت زير روش استفاده ار آرايه انجمي نتيجه رمزگشايي را نشان ميد.هد.
<?php $jsonobj = '{"Peter":35,"Ben":37,"Joe":43}'; $arr = json_decode($jsonobj, true); echo $arr["Peter"]; echo $arr["Ben"]; echo $arr["Joe"]; ?>
براي دسترسي بمقادير شي داده ايphp ميتوان ازحلقه foreach( ) استفاده نمود . مطابق مثال زير
<?php $jsonobj = '{"Peter":35,"Ben":37,"Joe":43}'; $obj = json_decode($jsonobj); foreach($obj as $key => $value) { echo $key . " => " . $value . "<br>"; } ?>
مثال ـ در مثال زير دسترسي بمقاديرآرايه انجمني بدست آمده از رمزگشائي با بكارگيري حلقه
<?php $jsonobj = '{"Peter":35,"Ben":37,"Joe":43}'; $arr = json_decode($jsonobj, true); foreach($arr as $key => $value) { echo $key . " => " . $value . "<br>"; } ?>