【发布时间】:2019-01-28 17:12:30
【问题描述】:
我已经有一段时间没有这样做了,我显然错过了一些关键部分。我希望你们都可以让我直截了当。
我有一个我正在解码的 json 文件,我希望访问特定日期的数据是一项简单的任务。这是我到目前为止所做的。
$solardata = file_get_contents('solar.json');
$solarjson = json_decode("$solardata");
$production = $solarjson->{'2019-01-24 11:00:00'};
echo "$production";
$production 变量始终为空。 作为参考,solar.json 文件的开头是这样的:
{"powerDetails":{"timeUnit":"QUARTER_OF_AN_HOUR","unit":"W","meters":[{"type":"Production","values":[{"date":"2019-01-24 11:00:00","value":273.5632},{"date":"2019-01-24 11:15:00","value":405.8625},{"date":"2019-01-24 11:30:00","value":558.6771},
var_dump($solarjson) 的开头是这样的:
object(stdClass)#321 (1) { ["powerDetails"]=> object(stdClass)#3 (3) { ["timeUnit"]=> string(18) "QUARTER_OF_AN_HOUR" ["unit"]=> string(1) "W" ["meters"]=> array(1) { [0]=> object(stdClass)#4 (2) { ["type"]=> string(10) "Production" ["values"]=> array(316) { [0]=> object(stdClass)#5 (2) { ["date"]=> string(19) "2019-01-24 11:00:00" ["value"]=> float(273.5632) } [1]=> object(stdClass)#6 (2) { ["date"]=> string(19) "2019-01-24 11:15:00" ["value"]=> float(405.8625) } [2]=> object(stdClass)#7 (2) { ["date"]=> string(19) "2019-01-24 11:30:00" ["value"]=> float(558.6771) }
服务器错误日志显示:
Undefined property: stdClass::$2019-01-24 11:00:00 in /home/......
我尝试访问的对象是否在我仍需要循环访问的数组中?我梦想着我可以通过一个简单的对象请求来避免所有这些,因为我正在寻找特定的数据,但正如我所说,我很生疏。 感谢您的帮助。
【问题讨论】:
-
查看您的数据并思考一下。那么你会看到'2019-01-24 11:00:00' 不是一个现有的键,而是一个值。
-
发帖前我确实想了几分钟,我想我误解了数据。因此问题。通过查看数据,我以某种方式认为时间戳是关键,附加到每个时间戳的值就是值。我会继续寻找。