📅  最后修改于: 2023-12-03 15:18:20.317000             🧑  作者: Mango
在开发 Web 应用程序时,您可能需要从 API 或其他外部源检索和读取 JSON 数据。PHP 中的 JSON 函数和类可用于轻松获取和处理 JSON 数据。
<?php
$url = 'https://jsonplaceholder.typicode.com/posts/1';
$contents = file_get_contents($url);
$data = json_decode($contents);
echo $data->title;
?>
您可以使用 file_get_contents()
函数从 URL 获取 JSON 数据。该函数返回包含 JSON 数据的字符串,可以使用 json_decode()
函数将其编码为 PHP 对象或数组。
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, 'https://jsonplaceholder.typicode.com/posts/1');
$contents = curl_exec($ch);
curl_close($ch);
$data = json_decode($contents);
echo $data->title;
?>
您可以使用 cURL
函数从 URL 获取 JSON 数据。可以设置不同的 cURL
选项以控制请求的行为。
<?php
$contents = '{"name":"John", "age":30, "city":"New York"}';
$data = json_decode($contents, true);
echo $data['name'];
?>
如果您期望 JSON 数据返回数组,而不是对象,则可以将第二个参数设置为 true:
$data = json_decode($contents, true);
{
"name": "John",
"age": 30,
"city": "New York",
"pets": [
{
"type": "dog",
"name": "Sparky",
"breed": "Poodle"
},
{
"type": "cat",
"name": "Fluffy",
"breed": "Persian"
}
]
}
如果 JSON 数据包含嵌套数据,则可以使用递归函数处理它:
<?php
function getFullName($person) {
return $person->first_name . ' ' . $person->last_name;
}
function getPetInfo($pet) {
return $pet->name . ' (' . $pet->breed . ')';
}
$contents = '{"name":"John", "age":30, "city":"New York", "pets":[{"type":"dog", "name":"Sparky", "breed":"Poodle"},{"type":"cat", "name":"Fluffy", "breed":"Persian"}]}';
$data = json_decode($contents);
echo $data->name . "\n";
echo $data->city . "\n";
foreach ($data->pets as $pet) {
echo getPetInfo($pet) . "\n";
}
?>
在 PHP 中获取和处理 JSON 数据非常简单。无论您从哪里获取数据,都可以使用 json_decode()
函数将其转换为 PHP 对象或数组。然后,您可以使用 PHP 函数和类处理这些数据,以满足您的特定需求。