json:数组与对象

问题

我把一个数组用json_encode编码后传给RIA。今天RIA突然对我说,我给他的是对象,更奇怪的是:

有的请求是数组,有的是对象

测试数据

1
$result = array(0=>'a',1=>'b',2=>'c');

json格式化后的数据

  • 数组
1
["a","b","c"]
  • 对象
1
{"0":"a","1":"b","3":"c"}

如果是数组的话,是[];如果是对象的话,是{}

答案

通过一段时间对比后,发现被转成对象的json数据里多了key,再对比原数据与测试数据,终于发现了问题的所在:

在对数据的输出时我做了过滤的处理,导致数组的key并不是一个有序的序列。所以在保存的时候会把key也保存进去。调整了一下后就OK了。

坚持原创技术分享,您的支持将鼓励我继续创作!