JSON مخفف JavaScript Object Notation می باشد و در اکثر زبان های برنامه نویسی کاربرد دارد. ساختار json متنی است و به همین دلیل برای انتقال اطلاعات بسیار کاربردی می باشد. یکی از کاربردهای ویژه آن انتقال اطلاعات در API است. PHP دارای فانکشن های پیش ساخته ای برای کار با آن می باشد.
جیسون کاملاً مستقل از زبان های برنامه نویسی می باشد. اما از قراردادهایی استفاده میکند که برای برنامهنویسان خانواده C، آشنا هستند. C++ ،C# ،Java ،JavaScript ،Perl ،Python و بسیاری زبان های دیگر. این ویژگی JSON را به یک زبان ایده آل برای تبادل داده تبدیل می کند.
json_encode()
json_decode()
کار با JSON با استفاده از فانکشن json_encode
از فانکشن json_encode برای تبدیل آرایه به JSON استفاده می شود. به دو مثال زیر دقت نمایید.
<?php
$age = array("Peter"=>35, "Ben"=>37, "Joe"=>43);
echo json_encode($age);
?>
<?php
$cars = array("Volvo", "BMW", "Toyota");
echo json_encode($cars);
?>
فانکشن json_decode در PHP
از فانکشن json_decode برای تبدیل JSON object به PHP object استفاده می شود.
<?php
$jsonobj = '{"Peter":35,"Ben":37,"Joe":43}';
var_dump(json_decode($jsonobj));
?>
این فانکشن دارای پارامتر دومی به نام true می باشد که در صورت استفاده از آن نتیجه به شکل آرایه خواهد بود. مانند مثال زیر
<?php
$jsonobj = '{"Peter":35,"Ben":37,"Joe":43}';
var_dump(json_decode($jsonobj, true));
?>
روش دسترسی به نتایج حاصل (چه به صورت آبجکت و چه به صورت آرایه)
در دو مثال زیر نحوه دسترسی به اطلاعات کاملا مشخص می باشد.
مثال برای دسترسی به آبجکت PHP
<?php
$jsonobj = '{"Peter":35,"Ben":37,"Joe":43}';
$obj = json_decode($jsonobj);
echo $obj->Peter;
echo $obj->Ben;
echo $obj->Joe;
?>
مثال برای دسترسی به آرایه PHP
<?php
$jsonobj = '{"Peter":35,"Ben":37,"Joe":43}';
$arr = json_decode($jsonobj, true);
echo $arr["Peter"];
echo $arr["Ben"];
echo $arr["Joe"];
?>
البته بوسیله 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>";
}
?>
منبع: w3schools.com