如何印 json_decode 第二層?

火爆浪子
  • 2.8k

這是我 json_decode 對方回給我的 json 結果

stdClass Object
(
    [attributes] => Array
        (
            [0] => stdClass Object
                (
                    [attribute-id] => 5c6186217d4d0765152e42f7
                    [attribute-type] => skill
                    [parent-attribute-id] => 
                    [parent-attribute-name] => 
                    [name] => rgargrereshserhersh
                    [slogan] => srehsrehrsehsrehre
                    [description] => hrehrehresserhgserhserh
                    [time-created] => 2019-02-11T14:54:57.073Z
                    [available] => 1
                    [time-available] => 2019-02-11T14:26:41.348Z
                    [image-path] => http://127.0.0.1:9002/images/attribute/icon/15498952015c61862103aea-icon.JPG
                    [cover-path] => http://127.0.0.1:9002/images/attribute/cover/15498952015c61862103aea-cover.jpg
                )

        )

)

請問我要怎麼印出 name?
他第一層有 「attributes」
我原本的做法是

<?=$data->{'name'};?>

但是不行⋯⋯多了第一層的「attributes」讓我沒辦法印,如何印第二層的KEY?
PS:只會有一筆,所以不會用 foreach

回复
阅读 2.1k
3 个回答
✓ 已被采纳

或者 json_decode 成 array:

$data = json_decode($jsonStr, true);

或者直接取对象成员:

$data->attributes[0]->name

或者遍历:

foreach ($data->attributes as $item) {
    var_dump($item->name);
}

json_decode($data,true)可转为数组

你知道吗?

宣传栏