防止json_encode添加转义字符

时间:2011-05-19 15:21:10

标签: php jquery ajax

是否有防止json_encode添加转义字符的解决方案?我从ajax请求返回一个json obj。

以下是我目前的情况:

foreach ($files as $file)
{
    $inf    =   getimagesize( $file );

    $farr[] = array (
                    "imgurl"    =>  "/".str_replace( "\\" , "/" , str_replace( DOCROOT , "" , $file ) ) ,
                    "width"     =>  $inf[0] ,
                    "height"    =>  $inf[1]
                    );
}
$t  =   json_encode( $farr );

提供:

[
{\"imgurl\":\"\\\/_assets\\\/portfolio\\\/96\\\/full.png\",\"width\":580,\"height\":384},
{\"imgurl\":\"\\\/_assets\\\/portfolio\\\/95\\\/full.png\",\"width\":580,\"height\":452},
{\"imgurl\":\"\\\/_assets\\\/portfolio\\\/94\\\/full.png\",\"width\":580,\"height\":384}
]

但我需要:

[
{imgurl:"/_assets/portfolio/96/full.png",width:580,height:384},
{imgurl:"/_assets/portfolio/95/full.png",width:580,height:452},
{imgurl:"/_assets/portfolio/94/full.png",width:580,height:384}
]

引用了imgurl宽度和高度索引导致我的其他javascript中断

没有太多运气,所以任何提示都非常受欢迎......

1 个答案:

答案 0 :(得分:4)

使用您在问题中的代码并对其进行var_dumping,我得到以下内容:string(40) "[{"imgurl":"\/bla"},{"imgurl":"\/blub"}]"

只有当我将$t = json_encode(json_encode($farr));的json_encode加倍时,我得到与你相同的结果 - 所以必须在某处有第二个json_encode ...