Странная ошибка JSON.parse() в node.js

Я получаю некоторый строковый JSON через TCP в node.js и хочу его проанализировать. Так что мой подход похож на этот. Я сократил и упростил его, поэтому вам не нужно знать окружающую логику.

socket.on("data", function(data) {
    console.log(data.toString());               // Shows the original stringifyed version
    console.log(JSON.parse(data.toString()));   // Doesn't work
});

Вот полный (улучшенный) JSON. Как видите, ошибок нет.

{
    "result": "success",
    "source": "chat",
    "success": {
        "message": "test",
        "time": 1331770513,
        "player": "silvinci"
    }
}

Но JSON.parse(data.toString())всегда выдает мне эту глупую ошибку:

{"result":"success","source":"console","success":{"time":1331762264,"line":"20
^
SyntaxError: Unexpected token {
    at Object.parse (native)
    at Socket.<anonymous> (/home/node/api.js:152:35)    // irrelevant from here on
    at Socket.emit (events.js:67:17)
    at TCP.onread (net.js:347:14)

Поэтому я подумал: «Что может быть не так с JSON-String. Давайте попробуем это напрямую. Не должно работать». Сюрприз Сюрприз! Это сработало. Почему это работает, когда я напрямую ввожу строку?

6
задан buschtoens 15 March 2012 в 01:36
поделиться