var stats = JSON.parse(xmlhttp.responseText);
for (index = 0; index <= top; ++index) {
console.log(stats[index]);
}
返回对象:
Object {nick: "Okorok", uniq: "STEAM_0:0:XX", teamkill: 4, damage: 619592, deaths: 1727…}
如何阅读媒体资源?
如果我尝试"console.log(stats[index]['nick']);"
,我会收到错误:"Cannot read property 'nick' of undefined "
。
答案 0 :(得分:0)
查看统计信息是对象数组还是仅仅是一个简单的对象。
如果这只是一个简单的对象,那么你直接使用:
console.log(stats['nick']);
or
console.log(stats.nick);
好的,如果它是带对象的对象,请尝试:
for ( key in stats)
{
console.log(stats[key].nick);
}
答案 1 :(得分:0)
我认为你像一个对象数组一样,如:
stats = [{},{},{},...];
如果是这样,你可以这样做:
var stats = JSON.parse(xmlhttp.responseText);
for (var index = 0; index<stats.length;index++){
for (var key in stats[index]) {
console.log(stats[index][key]);
}
}
如果没有,它将成为对象的对象,如:
stats = { "stat1": {}, "stat2": {}, "stat3": {}, ...];
然后你可以这样做:
var stats = JSON.parse(xmlhttp.responseText);
for (var index in stats){
for (var key in stats[index]) {
console.log(stats[index][key]);
}
}
或者它只是一个单一的对象,如:
stats = {}
然后你可以试试:
for (var key in stats) {
console.log(stats[key]);
}
所以,如果它是一个类似数组的对象,你必须采用不同的方式,首先你可以使用underscore.js:
stats = _.toArray(stats);
或者如果您不想使用underscore.js,则另一种方式是:
var stats2 = []
for (var key in stats) {
stats2.push(key);
}
stats = stats2;