Ich erhalte die Fehlermeldung "Ungefangener Syntaxfehler unerwartetes Token U", wenn ich meine Seite in Chrome ausführe. Und in Firefox bekomme ich "JSON.parse: unerwarteter Charakter". Ich gebe die JSON-Daten aus einer PHP-Datei zurück und die zurückgegebene JSON-Zeichenfolge ist gültig. Ich habe es mit http://jsonlint.com/ überprüft . Jede Hilfe wäre dankbar ... Danke.
Hier ist die zurückgegebene JSON-Zeichenfolge
[
["1","Pan Africa Market","\"1521 1st Ave, Seattle, WA\"","47.608941","-122.340145","restaurant"],
["2","The Melting Pot","14 Mercer St, Seattle, WA","47.624562","-122.356442","restaurant"],
["3","Ipanema Grill","1225 1st Ave, Seattle, WA","47.606366","-122.337656","restaurant"],
["4","Sake House","230 1st Ave, Seattle, WA","47.612825","-122.34567","bar"],
["5","Crab Pot","1301 Alaskan Way, Seattle, WA","47.605961","-122.34036","restaurant"],
["6","Mexican Kitchen","2234 2nd Ave, Seattle,WA","47.613975","-122.345467","bar"],
["7","Wingdome","1416 E Olive Way, Seattle, WA","47.617215","-122.326584","bar"],
["8","Piroshky Piroshky","1908 Pike pl, Seattle, WA","47.610127","-122.342838","restaurant"]
]
\"
in der Ausgabe sein.Antworten:
Dieser Fehler tritt normalerweise auf, wenn der angegebene Wert
JSON.parse
tatsächlich istundefined
. Ich würde also den Code überprüfen, der versucht, dies zu analysieren - höchstwahrscheinlich analysieren Sie nicht die hier gezeigte tatsächliche Zeichenfolge.quelle
"undefined"
eine Zeichenfolge anstelle des Literal seinundefined
. Ich habe gerade 30 Minuten damit verbracht, das herauszufinden.u
, ist, dassundefined
in eine Zeichenfolge gezwungen wird (weil eine Zeichenfolge das ist, was JSON.parse erwartet).Unexpected token N in JSON at position...
und das Problem war eindouble
Wert:NaN
Ich habe diese Nachricht während der Validierung erhalten (im MVC-Projekt). Durch Hinzufügen des ValidationMessageFor- Elements wurde das Problem behoben.
Um genau zu sein, verursachte die Zeilennummer 43 in jquery.validate.unobtrusive.js das Problem:
quelle
$("form :input").valid();
die Validierung ausgelöst. Aber anscheinend hat es einen Fehler in einem versteckten Feld ohne ValidationMessageFor gegeben.$("form :input:visible").valid();
Der Parameter für die JSON.parse gibt möglicherweise nichts zurück (dh der für die JSON.parse angegebene Wert ist
undefined
)!Es ist mir passiert, als ich den kompilierten Soliditätscode aus einer xyz.sol-Datei analysiert habe.
das wurde falsch geschrieben als
was nichts zurückgab!
quelle
Der häufigste Fall dieses Fehlers ist die Verwendung einer Vorlage, die das Steuerelement generiert
id
und dann die Art und Weise ändert und / odername
durch "Überschreiben" der Standardvorlage mit so etwas wie generiert wirdund dann zu vergessen , zu ändern ,
ValidationMessageFor
umHoffe das spart dir etwas Zeit.
quelle
Dieser Fehler trat auf, als ich eine Suchbedingung auf einem JSONArray innerhalb einer for-Schleife ausführte. Das Problem, mit dem ich konfrontiert war, war das Ergebnis eines der Werte in der for-Schleife, die null zurückgaben. Als ich versuchte, auf eine Eigenschaft zuzugreifen, schlug dies fehl.
Wenn Sie also in JSONArrays etwas tun, bei dem Sie sich der Datenquelle und ihrer Integrität nicht sicher sind, ist es meiner Meinung nach eine gute Angewohnheit, in diesem Fall mit null und undefinierten Ausnahmen umzugehen.
Ich habe das Problem behoben, indem ich den zurückgegebenen Wert von find im JSONArray auf null überprüft und Ausnahmen entsprechend behandelt habe.
Ich dachte, das könnte helfen.
quelle
In meinem Fall wurde versucht, JSON.parse () für eine AJAX-Variable aufzurufen, bevor die XHRResponse zurückkam. Z.B:
Ich habe das durch ein Beispiel aus der jQuery-Site für $ .get ersetzt :
quelle
Nur für den Fall, dass du es nicht verstanden hast
Beispiel: Das heißt, ich habe einen JSON-STRING. NOCH KEIN JSON-OBJEKT ODER ARRAY.
Wenn Sie also in Javascript sind, analysieren Sie die Zeichenfolge als
Tolle Antworten oben
quelle
Diese Antwort gilt für Personen, die bei der Arbeit mit File Upload auf diesen Fehler stoßen .
Wir haben Middleware für die tokenbasierte Verschlüsselung und Entschlüsselung verwendet und sind auf denselben Fehler gestoßen.
Es folgte unser Code in der Routendatei:
Hier haben wir Middleware vor der Upload-Funktion aufgerufen und das hat den Fehler verursacht. Als wir es geändert haben, hat es funktioniert.
quelle
Dies ist keine schwierige Aufgabe. Dieses Problem tritt auch auf meiner Website auf. Sie sollten Ihre JS-Dateien nach oben verschieben müssen. Denn an dem Ort, an dem Sie JSON-Parsing verwenden, werden Ihre JS-Dateien diesmal nicht geladen. BEISPIEL #
ändern
quelle
Nun, an alle, die den Fehler tatsächlich nirgendwo in Ihrem Code finden können, weder "undefiniert wie im lokalen Speicher angegeben noch null". Kommentieren Sie einfach Ihren Code aus und schreiben Sie einen anderen, der das Element tatsächlich im lokalen Speicher entfernt. Danach können Sie den aktuellen Code kommentieren oder löschen und den vorherigen Code erneut zurücksetzen, indem Sie ihn einfach auskommentieren (wenn Sie t nicht löschen ... wenn Sie dies getan haben, können Sie ihn erneut schreiben :)).
Die Konsole zeigt null an und setzt Ihren Code erneut zurück, wenn dies nicht funktioniert, Alter! Sie haben Fehler erhalten.
Entschuldigung für mein Englisch!
quelle
Ich habe diesen Fehler erhalten, als ich dieselbe Variable für json string und parsed json verwendet habe:
Ich habe die Funktion geändert in:
Jetzt ging dieser Fehler weg.
quelle