注意:正在尝试获取非对象php的属性


Notice: Trying to get property of non-object -php

我正在尝试访问json解码数据的数组元素。我在尝试访问时出错。下面是我的php代码和输出解码的json数据。

<?php
.
.
.
$json = $response;
$json_output = json_decode($json, true);
echo '<pre>';
print_r($json_output);
?>
Array
(
    [0] => Array
        (
            [alph_id] => 02adb5b4-d2fe-4a46-8798-1e2b876b2055
            [name] => Michael
            [s_id] => 1462339266273
            [avg_at] => 12.060000419617
            [distance] => 0
            [sw] => OFF
            [set_no] => 1
            [final_at] => 18.700000762939
        )
    [1] => Array
        (
            [alph_id] => 02adb5b4-d2fe-4a46-8798-1e2b876b2055
            [name] => John
            [s_id] => 1462339266273
            [avg_at] => 12.060000413454
            [distance] => 0
            [sw] => OFF
            [set_no] => 1
            [final_at] => 19.700000762939
        )
        .
        .
        .

我试图访问alph_id元素,但它显示了一个错误。

echo $json_output[0]->alph_id;  
Notice: Trying to get property of non-object

我认为我正确地访问了数组元素。这是怎么回事?

谢谢。。。

通过使用true作为第二个参数,对关联数组进行json解码。

因此,您需要将其作为$json_output[0]['alph_id']进行访问。

如果你这样做,

$json_output = json_decode($json);

这个json_decode将结果返回为Object,那么它应该是

$json_output[0]->alph_id; 

您在json_decode 的第二个参数中使用了true

json_decode($json, true);

当您定义它时,应该访问具有以下结构的索引

$json_output[0]['alph_id'];