web-dev-qa-db-de.com

Unerwartetes Token: u Problem mit JSON.parse ()

Ich habe online gelesen, dass das unerwartete Token u Problem durch die Verwendung von JSON.parse () entstehen kann. Auf meinem iPhone 5 gibt es kein Problem, aber auf meinem Nexus 7 bekomme ich diese Fehlerfolge:

enter image description hereGroßansicht

Mir ist klar, dass es sich um ein Duplikat handelt, aber ich bin mir nicht sicher, wie ich dieses Problem lösen kann. Hier implementiere ich JSON.parse ()

 $scope.fav = []; 

if ($scope.fav !== 'undefined') {
   $scope.fav = JSON.parse(localStorage["fav"]);
}
18
benjipelletier

Basierend auf Ihrer aktualisierten Frage ist die if-Bedingung nicht sinnvoll, da Sie $scope.fav direkt vor [] setzen, sodass es niemals "undefined" sein kann.

Wahrscheinlich möchten Sie Ihren Test so haben:

if (typeof localStorage["fav"] !== "undefined") {
  $scope.fav = JSON.parse(localStorage["fav"]);
}

Da ich nicht weiß, ob es eine Situation gibt, in der localStorage["fav"] die Zeichenfolge "undefined" enthalten könnte, benötigen Sie wahrscheinlich auch einen Test dafür.

if (typeof localStorage["fav"] !== "undefined"
    && localStorage["fav"] !== "undefined") {
  $scope.fav = JSON.parse(localStorage["fav"]);
}
19
t.niese

Eine Möglichkeit, den Fehler zu vermeiden (nicht wirklich beheben, aber zumindest nicht brechen):

$scope.fav = JSON.parse(localStorage["fav"] || '[]');

Sie erhalten diese Fehlermeldung, weil localStorage["fav"]undefined ist.

Probieren Sie es aus und Sie werden alles selbst verstehen:

var a = undefined;
JSON.parse(a);
12
avetisk

Unexpected token: u stammt fast immer aus dem Versuch, einen Wert zu analysieren, der undefined ist.

Davor kannst du dich schützen:

if (localStorage['fav']) {
  $scope.fav = JSON.parse(localStorage['fav'];
}
4
Dave Ward

In meinem Fall bestand das Problem darin, dass ich den Wert als localStorage.getItem[key] erhielt, während es localStorage.getItem(key) hätte sein sollen.

Die übrigen und normalerweise auftretenden Probleme wurden bereits anhand der obigen Antworten besser erläutert.

0
Black Mamba