JSON (JSON)
«جی سان (JSON)» یک قالب متنی برای نگه داری و جابه جایی داده است. سبک است و بین زبان ها قابل استفاده است. در PHP با چند تابع ساده می توان JSON را ساخت یا خواند.
JSON در PHP
در PHP دو تابع اصلی داریم: json_encode() برای ساخت JSON و json_decode() برای تبدیل JSON به شی یا آرایه. مثل بسته بندی کردن و بازکردن جعبه.
php - json_encode()
تابع json_encode() یک مقدار PHP را به رشته JSON تبدیل می کند.
آرایه Associative به شی JSON
<?php
$age = array("Peter" => 35, "Ben" => 37, "Joe" => 43);
echo json_encode($age);
?>
آرایه Indexed به آرایه JSON
<?php
$cars = array("Volvo", "BMW", "Toyota");
echo json_encode($cars);
?>
php - json_decode()
تابع json_decode() یک رشته JSON را به شی یا آرایه PHP تبدیل می کند. پیش فرض خروجی، شی است.
تبدیل به شی PHP (پیش فرض)
<?php
$jsonobj = '{"Peter":35,"Ben":37,"Joe":43}';
var_dump(json_decode($jsonobj));
?>
تبدیل به آرایه Associative
<?php
$jsonobj = '{"Peter":35,"Ben":37,"Joe":43}';
var_dump(json_decode($jsonobj, true));
?>
دسترسی به مقادیر دیکد شده
پس از دیکد، می توان مقادیر را از شی یا آرایه خواند. مثل بازکردن جعبه و برداشتن وسایل.
خواندن از شی
<?php
$jsonobj = '{"Peter":35,"Ben":37,"Joe":43}';
$obj = json_decode($jsonobj);
echo $obj->Peter;
echo $obj->Ben;
echo $obj->Joe;
?>
خواندن از آرایه Associative
<?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>";
}
?>
جمع بندی سریع
- json_encode() داده PHP را JSON می کند.
- json_decode() JSON را به شی یا آرایه می کند.
- پارامتر دوم true یعنی آرایه Associative.
- با foreach روی نتایج حلقه بزن.
- JSON در PHP پایه تبادل داده است.