validadro unexpected syntaxerror parsejson mounted jlint error javascript json angularjs token

javascript - syntaxerror - unexpected token in json at position 0



Un token inesperado: u JSON.parse() problema (4)

Base en su pregunta actualizada la condición if no tiene sentido, ya que estableció $scope.fav en [] justo antes, por lo que nunca puede estar "undefined" .

Lo más probable es que quieras tener tu prueba de esa manera:

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

Como no sé si hay una situación en la que localStorage["fav"] pueda contener la cadena "undefined" es probable que también necesite una prueba para esto.

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

He leído en línea que el problema inesperado del token u puede provenir del uso de JSON.parse (). En mi iPhone 5 no hay problema, pero en mi Nexus 7 obtengo esta secuencia de errores:

Ver en grande

Me doy cuenta de que esto es un duplicado, pero no estoy seguro de cómo resolverlo para mi problema específico. Aquí es donde implemento JSON.parse ()

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


En mi caso, el problema era que localStorage.getItem[key] el valor como localStorage.getItem[key] mientras que debería haber sido localStorage.getItem(key) .

El resto y los problemas que normalmente se enfrentan se explican mejor en las respuestas anteriores.


Una forma de evitar el error (no corregirlo realmente, pero al menos no se romperá):

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

localStorage["fav"] ese error porque localStorage["fav"] undefined está undefined .

Prueba esto y entenderás todo por ti mismo:

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


Unexpected token: u casi siempre se deriva de intentar analizar un valor que undefined está undefined .

Puedes protegerte de eso así:

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