نحوه بازگرداندن 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 تنظیم میگردد. در عمل بهتر است که در محیط تولید، تنها یک وضعیت خطای عمومی به کاربر ارسال شود و خطاهای جزییتر برای بررسیهای بعدی در لاگ ذخیره شوند.