如何访问JavaScript对象的属性,给定具有属性名称

时间:2015-05-13 18:16:56

标签: javascript angularjs object

我从服务中获取此数据:

{"ok":{"0147852369":"somevalue"}}

我需要读取值,在此示例中为“somevalue”。 在变量内部,我有一个字符串,表示包含“somevalue”的属性的名称,如:

var mobilereceiver = "0147852369";

但是我无法弄清楚如何使用该字符串来访问具有相同名称的属性。

我最近的尝试是这样的:

$http.get( 
'url' 
) 
.success(function(data) { 
  var response = angular.fromJson(data); 
  var mobilereceiver = '0147852369'; 
  var messageId = response.ok.mobilereciever; 
});

我需要设置最后一个var messageId,它应该保存我从服务获得的数据的“somevalue”。但是,它不起作用。我做错了什么?

2 个答案:

答案 0 :(得分:0)

让我们看看您尝试使用的代码:

$http.get( 
'url' 
) 
.success(function(data) {
    var response = angular.fromJson(data); 
    var mobilereceiver = '0147852369'; 
    var messageId = response.ok.mobilereciever; 
});

您非常接近,因为您认识到您的字符串mobilereceiver包含需要作为最终媒体资源名称提供的值。但是,在您的最后一行,当您尝试访问response.ok.mobilereceiver时,实际上并未引用变量mobilereceiver。相反,它只是在ok内寻找实际上称为mobilereceiver的属性。您需要做的是使用关联数组样式访问器,而不是尝试使用点表示法来访问属性:

var messageId = response.ok[mobilereceiver];

这样可以将mobilereceiver的实际值作为字符串传入,该字符串将用作查找您尝试访问的值的键。

答案 1 :(得分:0)

您可能还想查看angular.fromJson,这是一个将JSON数据转换为对象类型结构的辅助函数。