在 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 对象或关联数组。最后,根据解码后的数据类型(对象或数组)处理数据。