首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >意外的令牌:u JSON.parse()问题

意外的令牌:u JSON.parse()问题
EN

Stack Overflow用户
提问于 2014-04-22 21:55:06
回答 4查看 91.7K关注 0票数 18

我在网上读到,意外的token u问题可能来自于使用JSON.parse()。在我的iPhone 5上没有问题,但在我的Nexus7上我得到了以下错误序列:

View large

我意识到这是一个复制品,但我不确定如何解决我的特定问题。下面是我实现JSON.parse()的地方

代码语言:javascript
复制
 $scope.fav = []; 

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

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-04-22 22:16:24

根据您更新的问题,if条件没有意义,因为您在前面将$scope.fav设置为[],因此它永远不可能为"undefined"

最有可能的情况是,您的测试是这样的:

代码语言:javascript
复制
if (typeof localStorage["fav"] !== "undefined") {
  $scope.fav = JSON.parse(localStorage["fav"]);
}

由于我不知道是否存在localStorage["fav"]可能包含字符串"undefined"的情况,因此您可能也需要为此进行测试。

代码语言:javascript
复制
if (typeof localStorage["fav"] !== "undefined"
    && localStorage["fav"] !== "undefined") {
  $scope.fav = JSON.parse(localStorage["fav"]);
}
票数 20
EN

Stack Overflow用户

发布于 2014-04-22 22:15:51

避免错误的一种方法(没有真正修复它,但至少不会崩溃):

代码语言:javascript
复制
$scope.fav = JSON.parse(localStorage["fav"] || '[]');

因为localStorage["fav"]undefined,所以你会得到这个错误。

试试这个,你就会自己明白了:

代码语言:javascript
复制
var a = undefined;
JSON.parse(a);
票数 12
EN

Stack Overflow用户

发布于 2014-04-22 22:16:00

Unexpected token: u几乎总是源于试图解析一个为undefined的值。

你可以像这样防止它:

代码语言:javascript
复制
if (localStorage['fav']) {
  $scope.fav = JSON.parse(localStorage['fav'];
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23221642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档