错误由来
php在调用
json_decode
从字符串对象生成json对象时,如果使用[]操作符取数据,会得到下面的错误:Cannot use object of type stdClass as array
$res_data = json_decode(data); echo($res_data['abc']);
错误分析
在php中直接使用
json_decode
函数来解析json字符串,这样解析出来的数组中包含的对象也是php对象,不是php数组类型,所以如果使用php数组的方式来访问操作就会报错。错误解决
- 在使用
json_decode
函数的时候加上第二个参数:json_decode(data,true) 这样解析出来的数类型就都转换为数组了,可以直接使用数组的方式访问里面的数据。 - 或者 直接使用 对象的方式操作解析出来的数据:
$res_data = json_decode(data,true); echo($res_data->abc);