无法在PHP中输出JSON数据数组

时间:2019-03-01 17:39:42

标签: php arrays json

我成功输出了温度和波动,但是我不知道如何在网关阵列内部输出信号。

<?php
$data = '{
    "name": "Aragorn",
    "race": "Human",
     "payload_fields": {
        "temperature": 700
     },
     "metadata": {
        "wave": -600,
        "gateways": [{
            "signal": -80,
            "connection": 1 
        }]
     }
}';

$device = json_decode($data);
//SUCCESS
echo $device->payload_fields->temperature; 
echo "<br>";
//SUCCESS
echo $device->metadata->wave;
echo "<br>";
//FAILED HERE
echo $device->metadata->gateways->signal;

在这里显示输出

700
-600

NOTICE Trying to get property of non-object on line number 25

第25行是代码的最后一行。

2 个答案:

答案 0 :(得分:2)

如果仔细观察,您的gateways节点将包含对象条目的 array ,而不仅仅是一个。

第一个是:

echo $device->metadata->gateways[0]->signal;

答案 1 :(得分:1)

由于网关位于阵列中,因此执行此操作。

echo $device->metadata->gateways[0]->signal;