在JSON中获取第一个对象

时间:2014-08-18 13:11:04

标签: javascript json object

我会直截了当地追逐。我正在使用其中的另一个对象获取一个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

3 个答案:

答案 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]