AJAX调用不解析JSON

时间:2015-03-21 22:13:44

标签: ajax json parsing

我有以下JSON:

[
{
    "number": "0",
    "name": "Russell Westbrook",
    "attemptedFG": [
        {
            "x": "333",
            "y": "97",
            "made": "true",
            "assisted": "false"
        },
        {
            "x": "571",
            "y": "389",
            "made": "true",
            "assisted": "false"
        }
    ],
    "attemptedFT": [
        {
            "made": "true"
        },
        {
            "made": "false"
        }
    ],
    "rebounds": "5",
    "assists": "8",
    "steals": "2",
    "blocks": "1",
    "turnovers": "3",
    "fouls": "4"
}
]

我试图用这个使用ReactJS的AJAX调用来解析它:

loadStatsFromServer: function() {
    $.ajax({
        url: this.props.url,
        dataType: 'json',
        success: function(data) {
            this.setState({data: data});
        }.bind(this),
        error: function(xhr, status, err) {
        console.error(this.props.url, status, err.toString());
        }.bind(this)
    });
}

在AJAX调用成功后,JSON中的所有值仍然是字符串化的。服务器发回一个带有'Content-Type','application / json'的响应头,所以我不确定它为什么不解析。

服务器端呼叫:

app.get('/stats.json', function(req, res) {
    fs.readFile('stats.json', function(err, data) {
        res.setHeader('Content-Type', 'application/json');
        res.send(data);
    });
});

非常感谢。

1 个答案:

答案 0 :(得分:0)

当您将字符串化的json对象从服务器发送到客户端时,您需要解析该对象为可读的javascript对象。因此,您需要在ajax请求的成功事件中解析json:

success: function(data) {
        var result = $.parseJSON(data);
    }

现在result是一个javascript可读对象。