我要把一个数组转为json 
数组本来输出是这样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);//把数组转为json
print_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中多了许多"\" 原来只有"/"的,这是怎么回事?JSONPHPURL

解决方案 »

  1.   

    json数据格式就是这样的,js里调用是没有问题的。
      

  2.   

    但是我看网上的教程不都是"0":upload/2013/05/09/14303.jpeg这样的吗? 而且这个“\”出现是什么原因?
      

  3.   

    但是我看网上的教程不都是"0":upload/2013/05/09/14303.jpeg这样的吗? 而且这个“\”出现是什么原因?反斜杠\是转义字符的
      

  4.   

    要是有中文会转码  先  urlencode 再 urldecode就没有 \  中文也行
      

  5.   

    虽然没有键名,不过不是有,吗
    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 \是为了转义/用的,不止是/还有*()等符号在你输出的时候前面都会被加上\,因为它们比较特殊