这里发生了什么?
var data = '"[2743,1,1,1,1,1]"';
var flags = JSON.parse(data);
console.log(typeof flags); // this outputs "string"
我希望flags
是一个对象或数组,但它是一个字符串。 MDN Web Docs说,“JSON.parse()方法解析一个JSON字符串,构造字符串描述的JavaScript值或对象。”也:
返回值
对应于给定JSON文本的Object。例外
如果要解析的字符串无效JSON,则抛出SyntaxError异常。
答案 0 :(得分:2)
var data = '"[2743,1,1,1,1,1]"';
这是一个包含字符串的字符串。用
解析时var result = JSON.parse(data);
你得到的是字符串
"[2743,1,1,1,1,1]"
如果你第二次解析那将获得你的标志数组。
试试这个
var flags = JSON.parse(JSON.parse(data));
答案 1 :(得分:1)
看起来它是一个对象而且一切都很好,请查看代码段:
var data = '[2743,1,1,1,1,1]';
var flags = JSON.parse(data);
console.log(typeof flags);
console.log(flags);