在PHP中读取键中数字和字母混合的JSON数据值



我遇到了这个问题。我正在尝试从openweathermap.org天气数据API中读取数据。其中一个值,降雨量,用键中的数字和字母键入。如果我尝试阅读PHP,它会向我抛出错误。以下是我尝试使用的代码。

$rainAmount = $data->hourly[$hour]->rain->1h;

这里是JSON文件(不管怎样,它的一部分(。

"rain": {
"1h": 1.78
}

这是API提供的数据,所以我不能只更改所使用的密钥。以下是PHP错误

PHP解析错误:语法错误,意外的整数"1〃;,期望标识符或变量或";{"或"$"in/home/

很明显,密钥中的数字是问题所在。但除此之外,我该如何解读价值呢?

提前谢谢。

你尝试过吗:

$string = '{
"rain": {
"1h": 1.78
},
}';
$arr_weather = json_decode($string, true);
print $arr_weather['rain']['1h'];

来自json_decode(,true的第二个参数是将数据解码为关联数组的bool。请在此处阅读更多关于json_decode:的信息

https://www.php.net/manual/en/function.json-decode.php

如果你仍然想把你的响应作为一个对象来处理,你可以使用这样的大括号:

$string = '{
"rain": {
"1h": 1.78
},
}';

$weatherObject = json_decode($string);
print $weatherObject->rain->{'1h'};

但在这种情况下,你必须知道,如果你的密钥只是一个数字,它将不起作用,比如$weatherObject->雨->{"12"}-因此我建议将数据用作数组,就像第一个示例中一样。

相关内容

  • 没有找到相关文章

最新更新