用PHP从JSON文件中获取数据[重复]

xuo3flqw  于 2023-05-08  发布在  PHP
关注(0)|答案(3)|浏览(219)

此问题已在此处有答案

How to extract and access data from JSON with PHP?(1个答案)
4年前关闭。
我尝试使用PHP从下面的JSON文件中获取数据。我特别想要“温度最小值”和“温度最大值”。
这可能很简单,但我不知道该怎么做。在file_get_contents(“file.json”)之后,我被卡住了。一些帮助将不胜感激!

{
    "daily": {
        "summary": "No precipitation for the week; temperatures rising to 6° on Tuesday.",
        "icon": "clear-day",
        "data": [
            {
                "time": 1383458400,
                "summary": "Mostly cloudy throughout the day.",
                "icon": "partly-cloudy-day",
                "sunriseTime": 1383491266,
                "sunsetTime": 1383523844,
                "temperatureMin": -3.46,
                "temperatureMinTime": 1383544800,
                "temperatureMax": -1.12,
                "temperatureMaxTime": 1383458400,
            }
        ]
    }
}
jc3wubiy

jc3wubiy1#

使用file_get_contents()获取JSON文件的内容:

$str = file_get_contents('http://example.com/example.json/');

现在使用json_decode()解码JSON:

$json = json_decode($str, true); // decode the JSON into an associative array

你有一个包含所有信息的关联数组。要弄清楚如何访问所需的值,可以执行以下操作:

echo '<pre>' . print_r($json, true) . '</pre>';

这将以一种易读的格式打印出数组的内容。请注意,第二个参数设置为true,以便让print_r()知道输出应该 return 艾德(而不仅仅是打印到屏幕)。然后,访问所需的元素,如下所示:

$temperatureMin = $json['daily']['data'][0]['temperatureMin'];
$temperatureMax = $json['daily']['data'][0]['temperatureMax'];

或者按照你的意愿循环遍历数组:

foreach ($json['daily']['data'] as $field => $value) {
    // Use $field and $value here
}

Demo!

khbbv19g

khbbv19g2#

使用json_decode将JSON转换为PHP数组。示例:

$json = '{"a":"b"}';
$array = json_decode($json, true);
echo $array['a']; // b
a8jjtwal

a8jjtwal3#

Try:
$data = file_get_contents ("file.json");
        $json = json_decode($data, true);
        foreach ($json as $key => $value) {
            if (!is_array($value)) {
                echo $key . '=>' . $value . '<br/>';
            } else {
                foreach ($value as $key => $val) {
                    echo $key . '=>' . $val . '<br/>';
                }
            }
        }

相关问题