我遇到了这个问题。我正在尝试从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"}-因此我建议将数据用作数组,就像第一个示例中一样。