ich diesen Fehler unten in diesem Code-Block erhalte:unerwartetes Token o in JSON an Position 1
function openWebsocket(url) {
var ws;
ws = $websocket(url);
ws.onOpen(function(event) {
console.log(' Websocket connection established:', event);
});
ws.onMessage(function(message) {
var userObj = UserFactory.getUserObject();
var settings = userObj.alert_settings;
// The JSON parsing...
var parsedMsg = JSON.parse(message.data);
var alert = JSON.parse(parsedMsg);
var date = new Date(parseFloat(alert.start_epoch+'000'));
alert.hour = date.getHours() +':'+date.getMinutes();
alert.percent_change = Math.round(alert.percent_change);
var shouldPush = main_alert_filter(settings, alert);
updateFeed(alerts, shouldPush, alert);
});
}
Ich habe an beide Parsing JSON giving "unexpected token o" error und I keep getting "Uncaught SyntaxError: Unexpected token o" sieht
jedoch weder Antwort geholfen. Weil, wenn ich zuerst JSON.parse (message.data) starte, bekomme ich einen String zurück, kein Objekt. Also muss ich JSON.parse erneut ausführen, um endlich ein echtes Objekt zurück zu bekommen.
Dies ist, was message.data
wie folgt aussieht:
" "{\"term\": \"\\\"nike\\\"\", \"percent_change\": 125, \"hour\": \"10:9\", \"term_id\": 2890413, \"start_epoch\": 1420474140, \"term_trend_id\": 793950, \"end_epoch\": 1420477740, \"formatted_date_difference\": \"January 5, 2015\", \"tickers\": [\"NKE\", \"$PUM\", \"ADDYY\", \"LULU\", \"UA\", \"HIBB\"], \"twitter_preview\": \"\", \"type\": \"spike\", \"approved\": 1, \"search_preview\": [\"\"]}" "
nun nach dem ersten Parsing parsedMsg
ist eine Zeichenfolge, die wie folgt aussieht:
{"term": "minimum wage +increase", "percent_change": 729, "hour": "9:14", "term_id": 2522115, "start_epoch": 1447168440, "term_trend_id": 657898, "end_epoch": 1447175700, "formatted_date_difference": "November 10, 2015", "tickers": ["$JAB", "$SLCY", "AAL", "AAPL", "ABCD", "ABTL", "ADDYY", "ADM", "AEO", "AFCO", "AHC"......
Schließlich muss ich ein tatsächliches Objekt, so habe ich JSON.parse laufen wieder, dieses zu erhalten:
Object {term: "minimum wage +increase", percent_change: 729, hour: "9:14", term_id: 2522115, start_epoch: 1447168440…}
andere Sache zu beachten, erhalte ich nie diesen Fehler, wenn ich Schreiten durch in Chrome. Es passiert nur, wenn ich den Haltepunkt nicht gesetzt habe. Könnte es sich um ein Problem mit dem Race-Condition-Typ handeln? Wie es versucht, JSON.parse etwas, das nicht bereit ist, analysiert zu werden?
UPDATE
Ok so manchmal ist die JSON ungültig scheinbar und manchmal nicht, so weit ich ohne Fehler mit dem folgenden Ausschnitt gut mache, Gedanken?
if (typeof alert === 'object') {
// do nothing...
} else {
var alert = JSON.parse(alert);
}
Die meiste Zeit das alert
Ergebnis JSON.parse(message.data)
ist ein string
so muss ich die anderen Kontroll es verdoppeln zu analysieren.
Wenn ich 'JSON.parse (...)' Ihre erste Zeichenfolge (nun, eine gültige Teilmenge davon), bekomme ich das endgültige Objekt, nicht die Zwischenzeichenfolge, die Sie angeblich erhalten. Wenn ich * dieses * Objekt parse, bekomme ich den Fehler, den du bekommst ... – seairth
dein 'parse' JSON ist unvollständig! Bitte teilen Sie das volle JSON-Ergebnis, damit wir den Fehler finden können. –
Tut mir leid, es ist komplett, es ist einfach super riesig und ich wollte das Ganze nicht posten. –