Почему json_encode добавляет обратную косую черту?

Я давно использую json_encode, и до сих пор у меня не было никаких проблем. Сейчас я работаю со скриптом загрузки и пытаюсь вернуть некоторые данные JSON после загрузки файла.

У меня есть следующий код:

print_r($result); // <-- This is an associative array
echo json_encode($result); // <-- this returns valid JSON

Это дает мне следующие результаты:

// print_r result
Array
(
    [logo_url] => http://mysite.com/uploads/gallery/7f/3b/f65ab8165d_logo.jpeg
    [img_id] => 54
    [feedback] => Array
        (
            [message] => File uploaded
            [success] => 1
        )

)

// Echo result
{"logo_url":"http:\/\/mysite.com\/uploads\/gallery\/7f\/3b\/f65ab8165d_logo.jpeg","img_id":"54","feedback":{"message":"File uploaded","success":true}}

Кто-нибудь может сказать мне, почему json_encodeдобавляет косые черты?

update

@Quentin сказал, что между json_encodeи .parseJSONчто-то происходит, и он прав.

Выполнение alert(data.toSource());дает мне неверный результат:

({response:"{\"logo_url\":\"http:\\/\\/storelocator.com\\/wp-content\\/uploads\\/gallery\\/7f\\/3b\\/71b9520cfc91a90afbdbbfc9d2b2239b_logo.jpeg\",\"img_id\":\"62\",\"feedback\":{\"message\":\"File uploaded\",\"success\":true}}", status:200})

И это недопустимый JSON. Он также добавляет статус : 200, и я понятия не имею, откуда это взялось.

Может ли быть так, что привязка Pluploadчто-то делает с моими возвращаемыми данными?

Это мой js-скрипт:

  uploader.bind('FileUploaded', function(up, file, data) {
    alert(data.toSource());
    $('#' + file.id + " b").html("100%");
  });
45
задан Steven 25 April 2012 в 12:07
поделиться