[英]Why is JSON.parse sometimes returning errors when used with a string array?
在下面的函數中,我在window.sessionStorage
存儲的一些字符串數組上使用JSON.parse()
,因此我可以使用.map()
類的方法。
window.sessionStorage = {
myArray1: "["805746|search|4","980093062|search|0","980113648|search|1"]"
}
function mySessionStorage(strArr) {
if (window.sessionStorage[strArr] &&
typeof window.sessionStorage[strArr] === 'string' &&
window.sessionStorage[strArr] !== '') {
var myData = JSON.parse(window.sessionStorage[strArr]);
if (myData && typeof myData === 'object') {
// ....
}
}
}
...然后像這樣調用: mySessionStorage('myArray1')
但我看到分析報告中記錄了幾個錯誤,但不知道為什么:
unexpected non-whitespace character after JSON data in...
unexpected token in json at position 6...
起初我認為罪魁禍首是尾隨逗號,或者可能是引號的問題。 但由於這似乎不會 100% 發生,我一直無法自己復制這個問題。
我錯過了什么?
問題是:在myArray1
的聲明中,您在雙引號內使用了雙引號。 所以改用撇號:
myArray1: '["805746|search|4","980093062|search|0","980113648|search|1"]'
或轉義引號:
myArray1: "[\"805746|search|4\",\"980093062|search|0\",\"980113648|search|1\"]"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.