Javascript 数组的JSON对象

Javascript 数组的JSON对象,javascript,arrays,json,Javascript,Arrays,Json,我现在正拿着这个发愁呢。在使用JSON.stringify从子窗口获取后,我在父窗口中有这个str变量。数组组是输入的集合 var str = {"SHOP1":"\"[[\\\"name1\\\",1,\\\"anotherdata1\\\"],[\\\"name2\\\",2,\\\"anotherdata2\\\"]]\"", "SHOP2":"\"[[\\\"name1\\\",1,\\\"anotherdata1\\\"],[\\\"name2\\\",2,\\\"anotherdat

我现在正拿着这个发愁呢。在使用
JSON.stringify
从子窗口获取后,我在父窗口中有这个
str
变量。数组组是输入的集合

var str = {"SHOP1":"\"[[\\\"name1\\\",1,\\\"anotherdata1\\\"],[\\\"name2\\\",2,\\\"anotherdata2\\\"]]\"",
"SHOP2":"\"[[\\\"name1\\\",1,\\\"anotherdata1\\\"],[\\\"name2\\\",2,\\\"anotherdata2\\\"]]\""};
我所做的是

for(var i in str) {
console.log(i); 
console.log(JSON.parse(str[i])); 
} 

//the output example:
SHOP1
[["name1",1,"anotherdata1"],["name2",2,"anotherdata2"]]
但它永远不会将
[[“name1”,1,“anotherdata1”],[“name2”,2,“anotherdata2”]]
检测为数组,而是字符串


有没有办法让Javascript将其检测为数组?或者有更好的建议或替代方案吗?

诀窍是对其进行两次解析。首先获取字符串,然后将其转换为数组

var obj={“SHOP1”:“\”[[\\\\\\\“名称1\\\”,1,\\\\“其他数据1\\\”],[\\\\\“名称2\\”,2,\\\\“其他数据2\\\\”]\”,
“SHOP2”:“\”[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\;
for(obj中的var shopname){
var shop=obj[shopname];
shop=JSON.parse(JSON.parse(shop));
控制台.日志(车间);
控制台.日志(车间.长度);

}
没有arr。。。请格式化你的代码…@Jonasw谢谢你指出。忽略了标准。数据似乎已通过JSON.stringify多次传递,至少部分传递了一次。你真的应该修复生成它的任何东西,这样它就不会多次字符串化。你已经字符串化了数组,然后字符串化了整个str对象,所以当你得到数组时,它将返回一个字符串。要获取字符串作为数组,必须再次解析返回的字符串。因此,您最好尝试将其字符串化一次,以避免多次解析“或者是否有更好的建议或替代方案?”修复生成字符串的代码。不要对数据进行双重编码。
unescape
在这里没有任何作用。感谢@FelixKlingwas即将询问我们为什么需要
unescape
。我不知道我已经把字符串化了两次,谢谢@nixkuroi!