为什么我无法在 Google Chrome 控制台中解析此 json 数据

Why can't I parse this json data in Google Chrome console

我在 chrome 控制台中输入这个

    var data = [
{
    "name":"john doe",
    "birth":"09/07/15"
},
{
    "name":"jane doe",
    "birth":"09/07/15"
}
];

JSON.parse([data[0]);

但我收到错误

Uncaught SyntaxError: Unexpected token o at Object.parse (native)

为什么?

根据 MDN docs JSON.parse()string 作为参数。

在您的示例中,您正在传递一个对象 -- 这就是您收到错误的原因。

事实上,JSON.parse() returns一个对象,所以传递一个对象给它是完全没有意义的。

JSON 对象的解析函数需要一个字符串。

您可以将 JSON 对象转换为字符串,然后对其进行解析。

var data = [{
  "name":"john doe",
  "birth":"09/07/15"
},
{
  "name":"jane doe",
  "birth":"09/07/15"
}];

var object = JSON.stringify(data[0]);
JSON.parse(object);