如何使用角度js对JSON对象进行交互

时间:2016-02-10 12:18:51

标签: javascript angularjs json

我有一个JSON结构如下

var myJson = {
   "Number of Devices":2,
   "Block Devices":{
      "bdev0":{
         "Backend_Device_Path":"/dev/ram1",
         "Capacity":"16777216",
         "Bytes_Written":9848,
         "timestamp":"4365093970",
         "IO_Operations":87204,
         "Guest_Device_Name":"vdb",
         "Bytes_Read":107619,
         "Guest_IP_Address":"192.168.26.88"
      },
      "bdev1":{
         "Backend_Device_Path":"/dev/ram2",
         "Capacity":"16777216",
         "Bytes_Written":10062,
         "timestamp":"9365093970",
         "IO_Operations":93789,
         "Guest_Device_Name":"vdb",
         "Bytes_Read":116524,
         "Guest_IP_Address":"192.168.26.100"
      }
   }
}

我想选择块设备bdev0,bdev1 ...以及它们的值通常这很容易使用vanilla javascript中的Object.keys但似乎我不能在角度中使用此功能所以我尝试了角度。 forEach但它返回undefined。

这是我能走多远

function getData(){
  $http.get(path)
  .success(function(data){
    $scope.devices = data
    angular.forEach($scope.devices, function(item){
                   console.log(item['Block Devices']);
               })


  })
}

2 个答案:

答案 0 :(得分:5)

使用下面的代码段中的forEach来访问所需的属性:

angular.forEach($scope.devices['Block Devices'], function(value, key) {
   console.log(value, key);
   // Would log value of $scope.devices['Block Devices'][key]
   // and key name which is 'bdev0', 'bdev1' etc.
})

通过这种方式,您可以将bdev0bdev1的值视为,并在回调函数中将设备命名为key

答案 1 :(得分:0)

Angular是一个javascript框架。任何在vanilla javascript中工作的东西也可以在这里工作。 关于你的问题:你应该像这样迭代:

angular.forEach($scope.devices['Block Devices'], function(value, key){
       console.log(key);
})

这将控制bdev0bdev1等。