我使用json_decode()得到一个奇怪的错误。它正确解码数据(我看到它使用print_r),但当我试图访问数组内的信息时,我得到:
Fatal error: Cannot use object of type stdClass as array in
C:\Users\Dail\software\abs.php on line 108
我只想做:$result['context']其中$result有json_decode()返回的数据
如何读取这个数组中的值?
我使用json_decode()得到一个奇怪的错误。它正确解码数据(我看到它使用print_r),但当我试图访问数组内的信息时,我得到:
Fatal error: Cannot use object of type stdClass as array in
C:\Users\Dail\software\abs.php on line 108
我只想做:$result['context']其中$result有json_decode()返回的数据
如何读取这个数组中的值?
当前回答
它不是数组,而是stdClass类型的对象。
你可以像这样访问它:
echo $oResult->context;
更多信息在这里:什么是stdClass在PHP?
其他回答
它不是数组,而是stdClass类型的对象。
你可以像这样访问它:
echo $oResult->context;
更多信息在这里:什么是stdClass在PHP?
你可以像这样将stdClass对象转换为数组:
$array = (array)$stdClass;
stdclass到数组
当你试图访问它作为$result['context'],你把它作为一个数组,错误它告诉你,你实际上是在处理一个对象,那么你应该访问它作为$result->context
为了从json字符串中得到一个数组,你应该将第二个参数设置为boolean true。
$result = json_decode($json_string, true);
$context = $result['context'];
否则$result将是一个std对象。但是您可以以对象的形式访问值。
$result = json_decode($json_string);
$context = $result->context;
下面是函数签名:
mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )
当param为false(默认值)时,它将返回适当的php类型。您可以使用object获取该类型的值。方法范式。
当param为true时,它将返回关联数组。
它将在错误时返回NULL。
如果你想通过数组获取值,将assoc设置为true。