首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在角上获取json对象的名称

如何在角上获取json对象的名称
EN

Stack Overflow用户
提问于 2016-05-11 10:37:18
回答 3查看 673关注 0票数 0

我有一组数据

代码语言:javascript
复制
$scope.mydata = [{
    "Block_Devices": {
      "bdev0": {
        "Backend_Device_Path": "/dev/ram1",
        "Capacity": "16777216",
        "Bytes_Written": 1577,
        "timestamp": "4365093970",
        "IO_Operations": 17757,
        "Guest_Device_Name": "vdb",
        "Bytes_Read": 17793,
        "Guest_IP_Address": "192.168.26.88"
      },
      "bdev1": {
        "Backend_Device_Path": "/dev/ram2",
        "Capacity": "16777216",
        "Bytes_Written": 1975,
        "timestamp": "9365093970",
        "IO_Operations": 21380,
        "Guest_Device_Name": "vdb",
        "Bytes_Read": 20424,
        "Guest_IP_Address": "192.168.26.100"
      }
    },
    "Number of Devices": 2
  }]

我想从这个json创建一个数组,例如

代码语言:javascript
复制
devices = ['bdev0', 'bdev1']

当我尝试

$scope.mydata.Block_Devices,它给了我整个json对象,但是我只想知道对象的名称,比如bdev0和bdev1,我怎么能得到它呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-05-11 10:39:18

尝试如下:

代码语言:javascript
复制
var devices = [];

for (var key in $scope.mydata[0].Block_Devices) {
    devices.push(key) 
}
票数 1
EN

Stack Overflow用户

发布于 2016-05-11 11:15:36

以防万一ES5方案

代码语言:javascript
复制
devices = Object.keys($scope.mydata[0].Block_Devices)
票数 1
EN

Stack Overflow用户

发布于 2016-05-11 11:15:28

您必须遍历对象属性才能将其归档:

代码语言:javascript
复制
var devices = [];
var data = $scope.mydata[0].Block_Devices;

for (var name in data) {
  if (data.hasOwnProperty(name)) {
    devices.push(name);
  }
}

hasOwnProperty调用对于跳过prototype中的属性非常重要,如果您确信没有任何属性,则可以跳过它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37160128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档