我会直截了当地追逐。我正在使用其中的另一个对象获取一个json对象,如下所示:
function getName(summonerName, region) {
LolApi.Summoner.getByName(summonerName, region, function(err, summoner) {
if(!err) {
console.log(summoner);
}
});
}
然而,这次电话会议的结果是(让我们留下召唤者姓名是" tetsii"):
{ tetsii:
{ id: 51520537,
name: 'tetsii',
profileIconId: 23,
summonerLevel: 23,
revisionDate: 1408307600000
}
}
现在,我可以使用" console.log(summoner.tetsii.id)"来访问id&s;和东西。例如,但因为summonerName(在这种情况下" tetsii")可以是任何东西,我宁愿不这样做。所以,我的问题是:如何访问JSON中的第一个对象还是有另一种方式?不,我不能在这种情况下得到阵列。
我想要注意的是,我已经尝试过&#34; console.log(summoner.summonerName.id)&#34;,但由于summonerName是一个字符串,因此不会产生结果。< / p>
谢谢大家
编辑:得到了答案。通过简单地使用召唤师[summonerName] .id我能够获取id。谢谢大家的回答!-Tetsii
答案 0 :(得分:0)
使用Object.keys
。例如,如果您知道summoner
只有一个顶级密钥,则可以通过以下方式获取:
var summonerName = Object.keys(summoner)[0];
强制浏览器支持通知:IE&lt; 9不支持开箱即用,但您可以使用MDN页面中提供的polyfill作为兼容垫片。
答案 1 :(得分:0)
对象中没有顺序,所以不能保证你会得到你想到的对象,但是你可以使用Object.keys和shift()
var first = summoner[Object.keys(summoner).shift()];
答案 2 :(得分:0)
如果无法将其作为数组返回,最好的想法是迭代对象属性,如https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in
中所述。最重要的部分是:
for (var prop in summoner) {
console.log("summoner." + prop + " = " + summoner[prop]);
}
在控制台中测试:
var summoner = { tetsii:
{ id: 51520537,
name: 'tetsii',
profileIconId: 23,
summonerLevel: 23,
revisionDate: 1408307600000
}
};
的产率:
summoner.tetsii = [object Object]