天空小小岛技术网站

标题: php之json_encode和json_decode输出格式总结 [打印本页]

作者: s.Bo    时间: 2012-9-11 16:07
标题: php之json_encode和json_decode输出格式总结
本帖最后由 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
作者: kk7769640    时间: 2012-9-23 13:52
楼主太厉害了,谢谢分享!
作者: 吾系阿奶    时间: 2013-5-17 13:29
感谢楼主的 分享啊




欢迎光临 天空小小岛技术网站 (http://tkxxd.net/) Powered by Discuz! X3.1