首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >致命错误:不能使用stdClass类型的对象作为数组-无法访问JSON

问致命错误:不能使用stdClass类型的对象作为数组-无法访问JSON
EN

Stack Overflow用户
提问于 2014-04-17 17:36:58
回答 2查看 1.4K关注 0票数 0

我试图遍历嵌套的JSON并打印结果,但是当我尝试时会得到前面提到的错误。

代码语言:javascript
复制
<?php

        $json = json_decode($orderItems);

        foreach ($json as $key) {

            ?><p>Product: <?php echo $json[$key] -> {'name'}; ?> | Quantity: <?php echo $json[$key] -> {'quantity'}; ?></p><?php

        }

    ?>

print_r($json)

stdClass对象( Tom => stdClass Object (命名=> Tom quantity => 3),Harry => stdClass Object (命名=> => quantity =>1))

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-17 17:49:37

将$json变量引用为关联数组和对象的混合。请看以下代码:

代码语言:javascript
复制
<?php

    // return an assoc array
    $json = json_decode($orderItems, true);

    foreach ($json as $orderItem) {
        echo '<p>Product: ' . $orderItem['name'] . ' | ';
        echo 'Quantity: ' . $orderItem['quantity'] . '</p>';
    }

?>
票数 3
EN

Stack Overflow用户

发布于 2014-04-17 17:41:00

foreach循环不是这样工作的,而php的语法与.您所称的$key实际上是数组中的每个元素。

你要找的可能是:

代码语言:javascript
复制
foreach($json as $element) {
    ?><p>Product: <?php echo $element['name']; ?> | Quantity: <?php echo $element['quantity']; ?></p><?php
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23139812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档