簡體   English   中英

為什么 JSON.parse 在與字符串數組一起使用時有時會返回錯誤?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM