AJAX调用不';t解析JSON

AJAX调用不';t解析JSON,ajax,json,parsing,Ajax,Json,Parsing,我有以下一段JSON: [ { "number": "0", "name": "Russell Westbrook", "attemptedFG": [ { "x": "333", "y": "97", "made": "true", "assisted": "false" }, { "x": "571",

我有以下一段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);
    });
});

非常感谢。

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

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

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

那么您能显示传输的实际JSON吗?你可以从你的开发工具的网络选项卡上获取。刚刚检查,实际的JSON是完全相同的。请显示一个屏幕截图。因为这是一个有效的JSON,无法解析为您解释的内容。当然:现在显示字符串化的值。