来自 sessionStorage 的字符串化数组的 JSON.parse() 出错

Error with JSON.parse() of stringified array from sessionStorage

我需要在 sessionStorage 中存储一个数组,发现这个答案很有帮助:Storing Objects in HTML5 localStorage

第一次使用 sessionStorage.setItem('flavors', JSON.stringify(flavors)) 存储数组并使用 JSON.parse(sessionStorage.getItem('flavors')) 检索字符串。然后,使用后退和前进按钮测试这个普通的JavaScript PWA,我得到一个错误:

SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data

根据数组的元素,列号可能会有所不同。

我可以使用以下方法避免错误:

  flavors = sessionStorage.getItem('flavors').split(",");

而不是 JSON.parse()。除了错误,我还可以控制台记录看起来没问题的字符串:

chocolate,vanilla,strawberry

可能导致错误的原因是什么?

为了解析 JSON,字符串必须代表一个有效的 JSON,在你的情况下这个 JSON.parse('["chocolate","vanilla","strawberry"]') 可以工作