PHP“Cannot use object of type stdClass as array” (php在调用json_decode从字符串对象生成json对象时的报错)

php再调用json_decode从字符串对象生成json对象时,如果使用[]操作符取数据,会得到下面的错误

错误:
Cannot use object of type stdClass as array

产生原因:

+展开

-PHP

$res = json_decode($res);

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

解决方法(2种):
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.

返回值默认是JSON对象,当第二个可选参数是TRUE的时候,则返回的是数组

时间: 2024-10-12 14:20:40

PHP“Cannot use object of type stdClass as array” (php在调用json_decode从字符串对象生成json对象时的报错)的相关文章

PHP“Cannot use object of type stdClass as array”

php再调用json_decode从字符串对象生成json对象时,如果使用[]操作符取数据,会得到下面的错误 错误:Cannot use object of type stdClass as array 产生原因: +展开 -PHP $res = json_decode($res); $res['key']; //把 json_decode() 后的对象当作数组使用. 解决方法(2种):1.使用 json_decode($d, true).就是使json_decode 的第二个变量设置为 tru

POST提交时总是报错: {"errcode":40017,"errmsg":"invalid button type"} 解决办法

开发语言:java 开发内容:微信公众号 自定义菜单 开发该连接的项目:点击打开链接 http://blog.csdn.net/blognkliming/article/details/16803093 执行MenuManage.java时报错: POST提交时总是报错:  {"errcode":40017,"errmsg":"invalid button type"} 网上找了很多资料,都没有解决问题.最后,在查看代码时发现,MenuManag

Django操作model时,报错:AttributeError:’ProgrammingError’ object has no attribute ‘__traceback__’

原因:在Django项目下相应的应用下面的models.py配置的model(也就是class)没有创建成相应的表. 这是怎么回事呢? 首先,将models.py里面的model创建成对应的数据库表的执行命令(DOS命令)为:manage.py syncdb. 但是我自己的电脑上执行该命令时,显示.Unknown command:syncdb.执行,manage.py help后的确没有发现这个子命令.最后网上搜索发现这个命令已经在Django1.9里面取消了.并且stackoverflow里面

解决:pipenv shell报错:AttributeError: 'module' object has no attribute 'run'

利用pipenv shell切换到虚拟环境时,显示报错:AttributeError: 'module' object has no attribute 'run' 可以看到是d:\program\python34\lib\site-packages\pipenv\shells.py文件的第62行报错了,提示模块没有run的属性,于是就跑到该文件的第62行去看 选中run,CTRL+B发现能看到源码,源码如下: if sys.version_info >= (3, 6): # Nearly sa

CXF报错[1 counts of IllegalAnnotationExceptions]and[Two classes have the same XML type name]and[Use @XmlType.name and @XmlType.namespace to assign different names to them]

启动时CXF报错如下: Caused by: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions Two classes have the same XML type name "{http://service.facade.masopen.shengpay.com/}verifyResponse". Use @XmlType.name and

Python的object和type理解

1.节选自Python Documentation 3.5.2的部分解释 Objects are Python's abstraction for data. All data in a Python program is represented by objects or by relations between objects. (In a sense, and in conformance to Von Neumann's model of a "stored program comput

Python2的object和type

前言: Python在2.2和3.0之间,把继承了object的类叫做新式类,如果我们定义了一个类,他没有继承object,则不是新式类,则没有__class__,__bases__等属性,而用type()函数查看他的类型,不是type类,而是classobj类.在py3后,默认所有的类都继承object. 我们接下来讨论的,是新式类 1 对象就是实例,实例就是对象 2.查看对象属于哪个类,用它的__class__属性查看,或者用内置函数type() 3.查看类的父类是什么,用它的__bases

The 'Microsoft.AspNetCore.Mvc.ViewFeatures.Internal.TempDataSerializer' cannot serialize an object of type

原因:经过研究源码发现,目前Asp.Net Core MVC不支持复杂的数据类型 源码地址: Microsoft.AspNetCore.Mvc.ViewFeatures TempDataSerializer.cs CanSerializeType The 'Microsoft.AspNetCore.Mvc.ViewFeatures.Internal.TempDataSerializer' cannot serialize an object of type 原文地址:https://www.cn

TypeError: Object of type 'int32' is not JSON serializable ——已解决

将模型用flask封装,返回json时报错:TypeError: Object of type 'int32' is not JSON serializable 网上搜索出的解决方案:重写json.JSONEncoder class MyEncoder(json.JSONEncoder): def default(self, obj): if isinstance(obj, numpy.integer): return int(obj) elif isinstance(obj, numpy.fl