我有以下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);
});
});
非常感谢。
答案 0 :(得分:0)
当您将字符串化的json对象从服务器发送到客户端时,您需要解析该对象为可读的javascript对象。因此,您需要在ajax请求的成功事件中解析json:
success: function(data) {
var result = $.parseJSON(data);
}
现在result
是一个javascript可读对象。