数组本来输出是这样
print_r($arrary);//输出结果:array ([0] => upload/2013/05/09/14303.jpeg [1] => upload/2013/05/09/14300.jpeg [2] => upload/2013/05/09/148.jpeg [3] => upload/2013/05/09/187.jpeg [4] => upload/2013/05/09/14296.jpeg [5] => upload/2013/05/09/203.jpeg ) $jarr=json_encode($arrary);//把数组转为jsonprint_r($jarr);//输出结果:[upload\/2013\/05\/09\/14303.jpeg,upload\/2013\/05\/09\/14300.jpeg,upload\/2013\/05\/09\/148.jpeg,upload\/2013\/05\/09\/187.jpeg,upload\/2013\/05\/09\/14296.jpeg,upload\/2013\/05\/09\/203.jpeg]
这是怎么回事,json为什么没有键?不是应该是0:upload/2013/05/09/14303.jpeg 这样的吗?而且原本数组中存的url中多了许多\ 原来只有/的,这是怎么回事?
回复讨论(解决方案) json数据格式就是这样的,js里调用是没有问题的。
json数据格式就是这样的,js里调用是没有问题的。
但是我看网上的教程不都是0:upload/2013/05/09/14303.jpeg这样的吗? 而且这个“\”出现是什么原因?
json数据格式就是这样的,js里调用是没有问题的。
但是我看网上的教程不都是0:upload/2013/05/09/14303.jpeg这样的吗? 而且这个“\”出现是什么原因?
反斜杠\是转义字符的
要是有中文会转码 先 urlencode 再 urldecode就没有 \ 中文也行
虽然没有键名,不过不是有,吗
js的数组的写法和php的还是有一定区别的,不是键名=》键值,而是用,隔开
var ar=[upload\/2013\/05\/09\/14303.jpeg,upload\/2013\/05\/09\/14300.jpeg,upload\/2013\/05\/09\/148.jpeg,upload\/2013\/05\/09\/187.jpeg,upload\/2013\/05\/09\/14296.jpeg,upload\/2013\/05\/09\/203.jpeg];
这里面的ar[0]就是 upload/2013/05/09/14303.jpeg
\是为了转义/用的,不止是/还有*()等符号在你输出的时候前面都会被加上\,因为它们比较特殊
如果键名是数字,会自动隐藏掉
