AJAX调用不';t解析JSON
我有以下一段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",
[
{
"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,无法解析为您解释的内容。当然:现在显示字符串化的值。