AngularJS:如何获取JSON对象的密钥

时间:2013-03-20 14:00:16

标签: json angularjs

我不确定这与AngularJS有什么关系,如果它只与JSON相关。

无论如何,让我们说我们有以下JSON:

$scope.dataSets = {
    "names": ["Horace", "Slughorn", "Severus", "Snape"],
    "genders": ["Male", "Female"]
}

现在,我使用ng-repeat指令打印上面的内容如下:

<div ng-repeat="data in dataSets>
    //Continue readig to know what I am expcting here
</div>

我期望在<div></div>标签中打印“名称”和“性别”。也就是说,我希望打印JSON的键。我不知道钥匙是什么,因为它们可能是任何东西。我怎么能这样做?

4 个答案:

答案 0 :(得分:96)

正如文档所述:

  

(key,value)in expression - 其中key和value可以是任何用户定义的标识符,expression是范围表达式,用于枚举集合。

<div ng-repeat="(key, data) in dataSets">
  {{key}}
</div>

答案 1 :(得分:9)

用于从 AngularJs 中的控制器内部访问 Json 键值对。

for(var keyName in $scope.dataSets){        
     var key=keyName ;
     var value= $scope.dataSets[keyName ];

  alert(key)
  alert(JSON.stringify(value));

}

答案 2 :(得分:3)

如果dataSets是一个数组而不是一个对象,则首先需要重复数组项,然后重复键或值。

<div ng-repeat="item in dataSets">
   <div ng-repeat="(key, value) in item">
   {{key}}
   {{value}}
   </div>
</div>

只是我的2美分。

答案 3 :(得分:1)

对于dataSets中的每个数据集,打印密钥然后遍历各个项目:

<div ng-repeat="(key, dataSet) in dataSets">
   <div>{{key}}</div>
   <div ng-repeat="value in dataSet">   
        {{value}}
   </div>
</div>

{{dataset}}也可以一次显示,数组将显示为以逗号分隔的值列表。