使用javascript解决Json中的String变量

时间:2014-10-15 18:20:20

标签: javascript json angularjs

我是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;

1 个答案:

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