JSON در PHP
تبدیل دادهها به JSON و برعکس با json_encode و json_decode — قلب APIهای مدرن
JSON چیست؟
JSON (JavaScript Object Notation) فرمت استاندارد برای تبدیل دادهها بین سرور و کلاینت است. تقریباً تمام APIهای مدرن از JSON استفاده میکنند.
تبدیل به JSON — json_encode()
برای تبدیل آرایه یا شیء PHP به JSON:
<?php
$data = [
"name" => "علی",
"age" => 25,
"city" => "تهران"
];
$json = json_encode($data);
echo $json;
// {"name":"علی","age":25,"city":"تهران"}
?>
JSON خوانا (Pretty Print)
<?php
$json = json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
?>
JSON_UNESCAPED_UNICODE برای نمایش درست حروف فارسی ضروری است!تبدیل از JSON — json_decode()
برای تبدیل JSON به آرایه یا شیء PHP:
<?php
$json = '{"name":"علی","age":25}';
// تبدیل به آرایه
$array = json_decode($json, true);
echo $array["name"]; // علی
// تبدیل به شیء
$obj = json_decode($json);
echo $obj->name; // علی
?>
پارامتر دوم json_decode
| مقدار | نتیجه |
|---|---|
true | آرایه انجمنی |
false (پیشفرض) | شیء (stdClass) |
مدیریت خطا — json_last_error()
<?php
$data = json_decode($invalidJson, true);
if (json_last_error() !== JSON_ERROR_NONE) {
echo "JSON نامعتبر!";
}
?>
مثال کاربردی — API ساده
<?php
// دادههای کاربران
$users = [
["id" => 1, "name" => "علی", "email" => "ali@test.com"],
["id" => 2, "name" => "مریم", "email" => "mary@test.com"]
];
// ارسال بهعنوان JSON
header("Content-Type: application/json");
echo json_encode($users, JSON_UNESCAPED_UNICODE);
?>
این مبحث بخشی از دوره آموزش کامل PHP است.