Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么JSON.parse在与字符串数组一起使用时有时会返回错误?_Javascript_Json - Fatal编程技术网

Javascript 为什么JSON.parse在与字符串数组一起使用时有时会返回错误?

Javascript 为什么JSON.parse在与字符串数组一起使用时有时会返回错误?,javascript,json,Javascript,Json,在下面的函数中,我对存储在window.sessionStorage中的一些字符串数组使用JSON.parse(),这样我就可以使用.map()之类的方法了 …这就是所谓的: mySessionStorage('myArray1') 但我在分析报告中看到了几个错误,无法找出原因: 中JSON数据后出现意外的非空白字符… 位置6处json中的意外标记… 起初我认为罪魁祸首是后面的逗号,或者可能是带引号的问题。但由于这种情况似乎并非100%都发生,我自己也无法复制这个问题 我遗漏了什么?问题是:

在下面的函数中,我对存储在
window.sessionStorage
中的一些字符串数组使用
JSON.parse()
,这样我就可以使用
.map()
之类的方法了

…这就是所谓的:
mySessionStorage('myArray1')

但我在分析报告中看到了几个错误,无法找出原因:

  • 中JSON数据后出现意外的非空白字符…
  • 位置6处json中的意外标记…
起初我认为罪魁祸首是后面的逗号,或者可能是带引号的问题。但由于这种情况似乎并非100%都发生,我自己也无法复制这个问题


我遗漏了什么?

问题是:在
myArray1
的声明中,您在双引号中使用了双引号。因此,请使用撇号:

myArray1: '["805746|search|4","980093062|search|0","980113648|search|1"]'
或转义引号:

myArray1: "[\"805746|search|4\",\"980093062|search|0\",\"980113648|search|1\"]"

您似乎在由常规双引号包围的字符串中使用常规双引号。这意味着javascript解析器无法理解您要做什么。如果包含双引号的内容,通常应该用单引号括起来,或者应该在字符串内部使用
\“
而不是
。您实际上是这样简单地定义window.sessionStorage,还是在其他地方以更高级的方式定义它?定义window.sessionStorage的更高级方式是什么?我不是自己填充window.sessionStorage属性,只是处理存储在那里的数据。
myArray1: "[\"805746|search|4\",\"980093062|search|0\",\"980113648|search|1\"]"