json_encode tworzy zniekształcony JSON (z dodatkowym ukrytym znakiem)

Używam PHPjson_encode() zwrócić niektóre dane, pobrane przez jQueryajax():

Uproszczony JS:

$.ajax({
    dataType: 'json',
    contentType: 'application/json',
    cache: false,
    type: 'POST',
    url: './api/_imgdown.php',
    error: function(jqXHR, textStatus, errorThrow) {
        console.log(jqXHR, textStatus, errorThrow);
    },
    success: function(data, textStatus, jqXHR) {
        console.log(data, textStatus, jqXHR);
    }
});

PHP to:

header('Content-Type: application/json; charset=UTF-8');
//default apiResponse
$apiResponse = [
    "status" => 1,
    "message" => "success",
    "data" => null
];

Następnie, gdy php uruchamia mój kod, kończy się dodaniem tych danych:

$apiResponse['data'][] = [
    "mid" => (int)$mid,
    "card_type" => $card_type,
    "header_size" => (int)$headers['Content-Length'],
    "saved_size" => (int)filesize($imgSavePath),
    "saved_path" => $imgSavePath
];
//spit out the JSON
echo json_encode($apiResponse);
exit();

JSON:

{"status":1,"message":"success","data":[{"mid":340052,"card_type":"kakusei","header_size":48337,"saved_size":48337,"saved_path":"..\/card\/kakusei\/340052.png"}]}

Na początku wydaje się to ważne. Mój Ajax, który pobiera ten PHP, zawsze kończy sięparseerror (wchodząc w ten sposób werror częśćajax()).

Jeśli skopiujesz i wkleisz ten JSON nahttp://jsonlint.com/, mówi „Nieoczekiwany token” ihttp://jsonformatter.curiousconcept.com/ mówi, że nie jest ważny.

próbowałemecho json_encode($apiResponse, JSON_UNESCAPED_SLASHES); nawet jeśli ucieczka jest dobra\/ ale nie robiło różnicy.

Ale co nie jest dokładnie ważne? Czy PHP nie miało zwracać poprawnego JSON?

Dodatkowe informacje: Testowanie na Windows7, Chrome 28.XX, używanie PHP 5.4.XX na Apache

Pytania, które przeczytałem przed opublikowaniem tego:

json_encode tworzy zniekształcone dane JSON?https://stackoverflow.com/a/15654848/684932o json_encode i ajax dataType: "json"php json_encode nie zwraca właściwego ciągu zakodowanego json

Aktualizacja:

Kopiowanie z SO do JSONlint daje ważny json. Zbadałem więc trochę dalej i zauważyłem, że PHP tworzy dziwną ukrytą postać, która w rzeczywistości czyni jsona nieważnym. Zobacz poniższy zrzut ekranu. Jak to naprawić?

questionAnswers(2)

yourAnswerToTheQuestion