запретить добавление escape-символов в json_encode - PullRequest
1 голос
/ 19 мая 2011

Есть ли решение, чтобы предотвратить добавление escape-символов в json_encode? Я возвращаю объект json из запроса ajax.

Вот что у меня сейчас есть:

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 Ответ

4 голосов
/ 19 мая 2011

Используя код, который у вас есть в вашем вопросе, и var_dumping, я получаю следующее: string(40) "[{"imgurl":"\/bla"},{"imgurl":"\/blub"}]"

Только если я удваиваю код json_encode, как $t = json_encode(json_encode($farr));, я получаю тот же результат, что и вы, поэтому где-то должен быть второй код json_encode…

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...