2016-05-11 35 views
0

我有一個數據集如何獲得JSON對象的名稱 - 在角度

$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如

devices = ['bdev0', 'bdev1'] 

當我嘗試

一個數組

$scope.mydata.Block_Devices它給了我整個json對象,但我只想要對象的名稱,即bdev0和bdev1,我怎麼能得到它?

+0

'設備= Object.keys($ scope.mydata [0] .Block_Devices)' –

回答

1

試試這個:

var devices = []; 

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

你必須遍歷對象的屬性歸檔此:

var devices = []; 
var data = $scope.mydata[0].Block_Devices; 

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

的hasOwnProperty呼叫重要的是要跳過它是從原型的屬性,如果你確定沒有,你可以跳過這個。

1

萬一ES5溶液

devices = Object.keys($scope.mydata[0].Block_Devices)