JSON.parse正在输出一个字符串

时间:2017-09-17 00:12:08

标签: javascript json

这里发生了什么?

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异常。

2 个答案:

答案 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);