JSON转数组报错

本文介绍了在PHP中遇到的Cannot use object of type stdClass as array错误的原因及解决方法。该错误通常发生在尝试将JSON解码为数组而非对象时。文中提供了两种解决方案:一是使用json_decode的第二个参数设置为true;二是改变访问方式,使用$obj->key而非$obj['key']。

Cannot use object of type stdClass as array错误的解决方法

今天调试一个php程序,发现出现了一个没见过的错误,错误代码:Cannot use object of type stdClass as array。这是怎么回事呢?查了半天纵欲发现这个竟然是json的写法问题:

产生原因:

$res = json_decode($res);

$res['key']; //把 json_decode() 后的对象当作数组使用。

网上令狐葱提供了两种解决方法:

1、使用 json_decode($d, true)。就是使json_decode 的第二个变量设置为 true。

2、json_decode($res) 返回的是一个对象, 不可以使用 $res['key'] 进行访问, 换成 $res->key  就可以了。

参考手册:json_decode
Return Values:Returns an object or if the optional assoc parameter is TRUE, an associative array is instead returned.


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值