php json_encode()函数返回对象和数组问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php json_encode()函数返回对象和数组问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1029字,纯文字阅读大概需要2分钟。
内容图文
![php json_encode()函数返回对象和数组问题](/upload/InfoBanner/zyjiaocheng/724/242249cdc48844aeb31c8b8ca5065512.jpg)
php json_encode() 函数格式化数据时会根据不同的数组类型格式化不同类型的json数据
索引数组时
<?php $arr = [1,2,3,4,5]; print_r(json_encode($arr)); //输出 [1,2,3,4,5]
关联数组时
<?php $arr = [ "name"=>"Bob", "job"=>"IT" ]; print_r(json_encode($arr)); //输出 {"name":"Bob","job":"IT"}
空数组
<?php $arr = []; print_r(json_encode($arr)); //输出 []
索引数组时生成的是数组类型数据,关联数组时生成的是对象类型的数据,空数组返回的是数组类型。但是当碰到同一个字段返回的数组可能是关联数组也可能是空数组时,就会在app端出现数据类型不一致的问题,解决方式有两种:
一,使用 json_encode的 JSON_FORCE_OBJECT 模式
<?php $arr = []; print_r(json_encode($arr,JSON_FORCE_OBJECT)); //输出 {}
但是这种存在一个问题,它会把所有的数据都以对象的方式返回,包括索引数组:
<?php $arr = [1,2,3,4,5,6]; print_r(json_encode($arr,JSON_FORCE_OBJECT)); //输出 {"0":1,"1":2,"2":3,"3":4,"4":5,"5":6}
二,定义空数据时使用 ArrayObject 定义而不适用 Array() 或者 []
<?php $arr = new ArrayObject(); print_r(json_encode($arr)); //输出 {}
到这里我们可以随意的控制返回的json数据中数据的类型啦!!!!
内容总结
以上是互联网集市为您收集整理的php json_encode()函数返回对象和数组问题全部内容,希望文章能够帮你解决php json_encode()函数返回对象和数组问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。