天空小小岛技术论坛

 找回密码
 注册
搜索
查看: 13481|回复: 2
打印 上一主题 下一主题

[总结] php之json_encode和json_decode输出格式总结

[复制链接]
跳转到指定楼层
1#
s.Bo 发表于 2012-9-11 16:07:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 s.Bo 于 2012-9-11 16:08 编辑

1.当array是一个从0开始的连续数组时,json_encode出来的结果是一个由[]括起来的字符串
而当array是不从0开始或者不连续的数组时,json_encode出来的结果是一个由{}括起来的key-value模式的字符串
  1. $test = array();
  2. $test[] = 1;
  3. $test[] = 2;
  4. $test[] = 3;
  5. echo json_encode($test);
复制代码
结果:
  1. [1,2,3]
复制代码
  1. $test = array();
  2. $test[] = 1;
  3. $test[] = 2;
  4. $test[] = 3;
  5. krsort($test);
  6. echo json_encode($test);
复制代码
结果:
  1. {"2":3,"1":2,"0":1}
复制代码
2.当字符串为
  1. [1,2,3]
复制代码
这种模式时,json_decode默认解析出来的结果是一个数组
当字符串为
  1. {"2":3,"1":2,"0":1}
复制代码
这种模式时,json_decode默认解析出来的结果是一个对象,此时可以设置它的第二个参数为true强制让它返回数组

3.由于php无法区分一维数组和二维数组,才会出现以上情况,因为使用json编码时推荐将第二个参数设置为true
2#
kk7769640 发表于 2012-9-23 13:52:37 | 只看该作者
楼主太厉害了,谢谢分享!
3#
吾系阿奶 发表于 2013-5-17 13:29:48 | 只看该作者
感谢楼主的 分享啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|天空小小岛  |京ICP备2025130156号|

GMT+8, 2025-6-21 20:52 , Processed in 0.101923 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表