PHP json_encode无法处理对象数组
发布时间:2020-12-13 22:04:09 所属栏目:PHP教程 来源:网络整理
导读:我正在开发php应用程序,其中我正在查询数据库和生成的结果我发送回html客户端. 目前我正在使用php函数json_encode获取我在JSON中编码的对象数组. 但是在编码之后我在结果中得到了null数组. 以下结构在编码为JSON之前 array(2) { [0]= object(ProductComment)
我正在开发php应用程序,其中我正在查询数据库和生成的结果我发送回html客户端.
目前我正在使用php函数json_encode获取我在JSON中编码的对象数组. 但是在编码之后我在结果中得到了null数组. 以下结构在编码为JSON之前 array(2) { [0]=> object(ProductComment)#6 (2) { ["_productId":"ProductComment":private]=> string(1) "1" ["_commentArray":"ProductComment":private]=> array(2) { [0]=> array(3) { ["comment"]=> string(9) "comment 1" ["creationDate"]=> string(19) "2000-02-02 00:00:00" ["userName"]=> string(8) "Ashutosh" } [1]=> array(3) { ["comment"]=> string(13) "comment1 text" ["creationDate"]=> string(19) "2012-07-31 10:20:27" ["userName"]=> string(8) "Ashutosh" } } } [1]=> object(ProductComment)#5 (2) { ["_productId":"ProductComment":private]=> string(1) "2" ["_commentArray":"ProductComment":private]=> array(2) { [0]=> array(3) { ["comment"]=> string(22) "comment2 product2 text" ["creationDate"]=> string(19) "2012-07-31 10:48:06" ["userName"]=> string(8) "Ashutosh" } [1]=> array(3) { ["comment"]=> string(22) "comment2 product4 text" ["creationDate"]=> string(19) "2012-07-31 10:48:14" ["userName"]=> string(8) "Ashutosh" } } } } 编码后显示null而不是JSON. 解决方法
看起来“ProductComment”的所有属性都是私有的,所以当谈到JSON编码时,你会得到:
[{},{}] 这基本上是一个数组,其中有两个空对象. 您需要做的是告诉PHP在序列化(或json编码)时可以并且应该保留哪些属性.为此,您需要将__sleep()魔术方法添加到您的类中:(http://uk.php.net/__sleep) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |