我是Javascript的新手并遇到了一个有趣的问题。 我有一个类似以下的Json:
{
"TEAM-8f382740": {[
{info1},
{info2},
{info3}
]}
}
我正在尝试在我的代码中获取“TEAM-8f382740”背后的内容:
$http.get('https://eune.api.pvp.net/api/lol/eune/v2.4/team/TEAM-8f580740')
.success(function(data) {
$scope.champs = data.??; //what to put here to get just {info1},{info2}...
});
问题是'TEAM-8f382740'是一个变量,同时也是一个棘手的形式。 我尝试了以下方法:
$scope.teamName = 'TEAM-8f580740'; //or var teamName='TEAM-8f580740';
$http.get('https://eune.api.pvp.net/api/lol/eune/v2.4/team/TEAM-8f580740')
.success(function(data) {
$scope.champs = data.$scope.teamName; //data.teamName doesn't work either
});
那么如何从Json获取[{info1},{info2},{info3}]内容? 我尝试了其他类型的Jsons,似乎代替“TEAM-8f580740”,例如“冠军”这个词没有改变,那么我可以通过它获取背后的内容 $ scope.champions = data.champions;
答案 0 :(得分:2)
你很亲密:
$scope.teamName = 'TEAM-8f580740'; //or var teamName='TEAM-8f580740';
$http.get('https://eune.api.pvp.net/api/lol/eune/v2.4/team/TEAM-8f580740')
.success(function(data) {
$scope.champs = data[$scope.teamName];
});
如果要从Javascript对象获取值,有两个选项:使用点表示法或括号表示法。假设你有这个对象:
var foo = {
"key": {"another_key": "baz"}
}
您可以使用点表示法获取值:
foo.key
#returns {"another_key": "baz"}
如果直到运行时才知道密钥的名称,则不能使用该点,因此可以使用括号表示法来完成相同的操作。
var key = "key"
foo[key]