![](/img/trans.png)
[英]Uncaught SyntaxError: Unexpected token u in JSON at position 0 at JSON.parse
[英]Unexpected token: u JSON.parse() issue
我在網上看到,意外的令牌問題可能來自於使用JSON.parse()。 在我的iPhone 5上沒有問題,但在我的Nexus 7上,我得到了一系列錯誤:
我意識到這是重復的,但我不知道如何解決這個問題。 這是我實現JSON.parse()的地方
$scope.fav = [];
if ($scope.fav !== 'undefined') {
$scope.fav = JSON.parse(localStorage["fav"]);
}
根據您更新的問題, if
條件沒有意義,因為您之前將$scope.fav
設置$scope.fav
[]
,因此它永遠不會是"undefined"
。
您很可能希望以這種方式進行測試:
if (typeof localStorage["fav"] !== "undefined") {
$scope.fav = JSON.parse(localStorage["fav"]);
}
由於我不知道是否存在localStorage["fav"]
可能包含字符串"undefined"
您可能還需要對此進行測試。
if (typeof localStorage["fav"] !== "undefined"
&& localStorage["fav"] !== "undefined") {
$scope.fav = JSON.parse(localStorage["fav"]);
}
避免錯誤的一種方法(不是真正修復它,但至少不會破壞):
$scope.fav = JSON.parse(localStorage["fav"] || '[]');
您收到該錯誤是因為localStorage["fav"]
undefined
。
試試這個,你會自己理解:
var a = undefined;
JSON.parse(a);
Unexpected token: u
幾乎總是源於嘗試解析undefined
的值。
你可以這樣防范:
if (localStorage['fav']) {
$scope.fav = JSON.parse(localStorage['fav'];
}
在我的情況下,問題是我得到的值是localStorage.getItem[key]
而它應該是localStorage.getItem(key)
。
通過上述答案已經更好地解釋了其余的和通常面臨的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.