Unexpected token: u JSON.parse() issue

benjipelletier picture benjipelletier · Apr 22, 2014 · Viewed 91.4k times · Source

I have read online that the unexpected token u issue can come from using JSON.parse(). On my iPhone 5 there is no problem, but on my Nexus 7 I get this sequence of errors:

enter image description here View large

I realize this is a duplicate, but I am not sure how to solve this for my specific problem. Here is where I implement JSON.parse()

 $scope.fav = []; 

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

Answer

t.niese picture t.niese · Apr 22, 2014

Base on your updated question the if condition does not make sense, because you set $scope.fav to [] right before, so it can never be "undefined".

Most likely you want to have your test that way:

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

As i don't know if there is a situation where localStorage["fav"] could contain the string "undefined" you probably also need test for this.

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