是否有防止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中断
没有太多运气,所以任何提示都非常受欢迎......
答案 0 :(得分:4)
使用您在问题中的代码并对其进行var_dumping,我得到以下内容:string(40) "[{"imgurl":"\/bla"},{"imgurl":"\/blub"}]"
只有当我将$t = json_encode(json_encode($farr));
的json_encode加倍时,我得到与你相同的结果 - 所以必须在某处有第二个json_encode ...