📜  php json 请求获取值 - PHP (1)

📅  最后修改于: 2023-12-03 15:18:20.317000             🧑  作者: Mango

PHP JSON 请求获取值

在开发 Web 应用程序时,您可能需要从 API 或其他外部源检索和读取 JSON 数据。PHP 中的 JSON 函数和类可用于轻松获取和处理 JSON 数据。

使用 file_get_contents() 函数获取 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 对象或数组。

使用 cURL 函数获取 JSON 数据
<?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 选项以控制请求的行为。

处理数组格式的 JSON 数据
<?php

$contents = '{"name":"John", "age":30, "city":"New York"}';

$data = json_decode($contents, true);

echo $data['name'];

?>

如果您期望 JSON 数据返回数组,而不是对象,则可以将第二个参数设置为 true:

$data = json_decode($contents, true);
处理 JSON 数据中的嵌套数据
{
    "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 函数和类处理这些数据,以满足您的特定需求。