当前位置:Gxlcms > PHP教程 > 关于json_encode的数组转json问题

关于json_encode的数组转json问题

时间:2021-07-01 10:21:17 帮助过:19人阅读

我要把一个数组转为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);//把数组转为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

\是为了转义/用的,不止是/还有*()等符号在你输出的时候前面都会被加上\,因为它们比较特殊

如果键名是数字,会自动隐藏掉

人气教程排行