نحوه بازگرداندن JSON در PHP
برای بازگرداندن نتیجه به صورت JSON در PHP، بهتر است که ابتدا نوع محتوا را با استفاده از هدر Content-Type
تنظیم کنید. انجام این کار به مرورگر کمک میکند تا متوجه شود که نوع دادهای که دریافت میکند، JSON است. نیازی به افزودن پارامتر charset
نیست، زیرا JSON به طور پیشفرض باید با کدگذاری UTF-8 ارسال شود.
کدی که میتوانید استفاده کنید به شکل زیر است:
<?php
// جمعآوری دادهها
$data = []; // اینجا میتوانید دادههای خود را جمعآوری کنید
header('Content-Type: application/json'); // تنظیم نوع محتوا
echo json_encode($data); // تبدیل دادهها به JSON و بازگشت آن
?>
در این کد، دادهها ابتدا درون یک متغیر جمعآوری میشوند و سپس با استفاده از json_encode
به فرمت JSON تبدیل میشوند. شما میتوانید دادهها را به صورت آرایه یا شیء JSON فراهم کنید.
به عنوان مثال:
$option = isset($_GET['option']) ? trim($_GET['option']) : null;
if ($option == 1) {
$data = ['a', 'b', 'c']; // آرایه JSON
} else {
$data = ['name' => 'God', 'age' => -1]; // شیء JSON
}
// بازگشت دادههای JSON
header('Content-Type: application/json');
echo json_encode($data);
در نظر داشته باشید که json_encode
ممکن است در صورت وجود خطا، به جای یک رشته JSON صحیح، مقدار false
را برگرداند. به همین دلیل، بهتر است که خطاها را نیز مدیریت کنید:
<?php
header("Content-Type: application/json");
$json = json_encode($data);
if ($json === false) {
// مدیریت خطا: بازگشت پیغام خطا به صورت JSON
$json = json_encode(["jsonError" => json_last_error_msg()]);
http_response_code(500); // تنظیم کد پاسخ HTTP به: 500 - خطای داخلی سرور
}
echo $json;
?>
در این کد، در صورت بروز خطا در تبدیل به JSON، یک پیام خطا به فرمت JSON بازگشت داده میشود و کد پاسخ HTTP به 500 تنظیم میگردد. در عمل بهتر است که در محیط تولید، تنها یک وضعیت خطای عمومی به کاربر ارسال شود و خطاهای جزییتر برای بررسیهای بعدی در لاگ ذخیره شوند.