Uncaught Error: Cannot use object of type stdClass as array

Uncaught Error: Cannot use object of type stdClass as array

Fatal error: Uncaught Error: Cannot use object of type stdClass as array

$code = json_decode($src);
echo $code["items"];

var_dump 显示以下内容(截断):

object(stdClass)#7 (3) { ... } 

我不知道 stdClass 是什么以及如何使用它。

编辑:

stdClass 是一个 class,它创建一个简单对象的实例。 classes 的属性将使用 -> 而不是 [...] 符号来访问。

根据 json_decode 的文档,简单地将第二个参数设置为 true 将导致结果为关联数组,它可以像数组一样依次访问。

在发布这个问题时,我没有尝试搜索如何解码 JSON - 因为这很简单而且我已经成功了。我刚刚遇到另一个错误(上图),但没有找到解决方法。我相信人们也有类似的问题,因为这个问题也得到了一些意见。

json_decode 函数有第二个参数专门用于此:将其设置为 true 将 return 一个关联数组,其中有一个对象(在 { "curly": "braces" } ) 在 JSON.

为了说明这一点:

$a = json_decode('{ "b": 1 }', false);
var_dump($a->b);
// prints: int(1)

$a = json_decode('{ "b": 1 }', true);
var_dump($a['b']);
// prints: int(1)

请注意访问值的不同之处。

进一步阅读:http://php.net/json_decode

使用json_decode($src, true)获取关联数组。

这是首选方式,因为目前您会得到混合的数组和对象,并且您可能会在疯狂的房子里尝试使用这些:)

或者使用 -> 运算符获取对象的属性。

目前您的商品位于:

$code->items[0]->pagemap->cse_image[0]->src