为了账号安全,请及时绑定邮箱和手机立即绑定

对php中json_encode的疑惑

想问下老师,为什么有时候json_encode一个数组,json格式出来后会是一个对象??php在转码过程中,对象和数组是怎么区分的?

正在回答

4 回答

如果PHP数组的键都是数字,那么json_encode()返回一个数组形式的Json,如果PHP数组的键全是字符串。那么json_encode()就会返回一个对象形式的Json。区分到底是数组还是对象,就看数组的键是怎么样的了,全为数字就

返回数组类型,权威字符串就返回对象类型

0 回复 有任何疑惑可以回复我~
#1

慕圣5703068 提问者

非常感谢!待会儿验证一下!!
2016-05-14 回复 有任何疑惑可以回复我~

比如json_encode一个索引数组array('name','age'),没有明确的key只有value,那么json_encode后他就是数组,而它输出的是["name","age"]。若是json_encode一个关联数组array("username"=>"zhangsan"),有明确的键和值,那么json_encode后他就是对象,而它实际输出的是{“username”:“zhangsan”},可以看出区别对象使用{}来包裹的,数组是使用[]来包裹的。

0 回复 有任何疑惑可以回复我~

可能回答的不是我要的问的,我的疑惑是,比如我们一个数组array("key"=>"value"),按正常理解转换成JSON格式后应该是["key":"value"],但是在使用json_encode转换后实际输出的是{"key":"value"},直接就变成一个对象了

0 回复 有任何疑惑可以回复我~

在php中对象是对象,数组是数组

对象含有属性方法,多态继承抽象,数组只有键和值

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Ajax全接触
  • 参与学习       224850    人
  • 解答问题       663    个

本课程通过一个案例,讲解Ajax的相关概念原理实现方式和应用

进入课程

对php中json_encode的疑惑

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信