Uncaught SyntaxError:JSON中的意外令牌Y在JSON.parse(位置<0>)处处于位置0

时间:2018-07-18 14:10:27

标签: javascript arrays parsing

我有一个数组:

var newquestions;
questions = ["Item1","Item2","Item3","Item4","item5"];

我这样将数组保存到本地存储中:

localStorage.setItem("newQuestionsArray", JSON.stringify(questions));

我试图得到这样的数组:

newquestions = JSON.parse(localStorage.getItem("newQuestionsArray"));

但是会出现此错误:

Uncaught SyntaxError: Unexpected token I in JSON at position 0
at JSON.parse (<anonymous>)

有人知道这个问题是什么吗?

谢谢

3 个答案:

答案 0 :(得分:1)

您可以尝试以下操作以检查错误:

  1. 找出size of localStorage并与您的json对象进行比较。

  2. 您不想将大对象分成单个localStorage条目。那将是非常低效的-每次有一些细微的细节更改时,都必须对整个事物进行解析和重新编码。另外,JSON无法处理对象结构中的多个交叉引用,并且会抹去很多细节,例如构造函数,数组的非数字属性,稀疏条目中的内容等。

    在我的codepen中,它在这里正常工作。

答案 1 :(得分:0)

您应该将数组包装在一个对象中。 (将{}放在数组周围) 在解码内容之前先尝试记录这些内容,以查看您输入的内容实际上是否是您获取的内容

答案 2 :(得分:0)

您的代码中有一个错字,您可以在其中设置项目

localStorage.setItem("newQuestionsArray", JSON.stringify(questions));

newQuestionsArray后有一个空格。删除该空格


如果没有空间,它应该可以正常工作。否则,该变量中是否有大量数据。我认为数据的最大大小不能超过4kb。所以这可能是存储时的问题