在 PHP 中處理 application/json
數據,您需要首先獲取 JSON 數據并將其解碼為 PHP 對象或關聯數組
獲取 JSON 數據:
通常,JSON 數據是通過 HTTP POST 請求的主體發送的。您可以使用 file_get_contents()
函數從輸入流中讀取原始 POST 數據。
$json_data = file_get_contents('php://input');
解碼 JSON 數據:
使用 json_decode()
函數將 JSON 字符串轉換為 PHP 對象或關聯數組。
// 將 JSON 數據解碼為 PHP 對象
$data_object = json_decode($json_data);
// 將 JSON 數據解碼為關聯數組
$data_array = json_decode($json_data, true);
處理解碼后的數據:
現在您可以像處理普通 PHP 對象或關聯數組一樣處理解碼后的數據。
示例:
if (json_last_error() === JSON_ERROR_NONE) {
if (is_object($data_object)) {
echo "Name: " . $data_object->name . "\n";
echo "Email: " . $data_object->email . "\n";
} elseif (is_array($data_array)) {
echo "Name: " . $data_array['name'] . "\n";
echo "Email: " . $data_array['email'] . "\n";
}
} else {
echo "Invalid JSON data.";
}
完整示例:
<?php
$json_data = file_get_contents('php://input');
$data_object = json_decode($json_data);
$data_array = json_decode($json_data, true);
if (json_last_error() === JSON_ERROR_NONE) {
if (is_object($data_object)) {
echo "Name: " . $data_object->name . "\n";
echo "Email: " . $data_object->email . "\n";
} elseif (is_array($data_array)) {
echo "Name: " . $data_array['name'] . "\n";
echo "Email: " . $data_array['email'] . "\n";
}
} else {
echo "Invalid JSON data.";
}
?>
這個示例展示了如何在 PHP 中處理 application/json
數據。首先,從輸入流中讀取 JSON 數據,然后將其解碼為 PHP 對象或關聯數組。最后,根據解碼后的數據類型(對象或數組)處理數據。