2015-05-13 63 views
-5

我从服务得到这个数据访问JavaScript对象的属性,给定的字符串:如何使用属性的名称

{"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; 
}); 

我需要设置的最后一个变种,messageId那么应该持有的,我从服务获取数据的“someValue中”。但是,它不起作用。我究竟做错了什么?

回答

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的实际值作为字符串来传递,这将用作查找您尝试访问的值的关键。

0

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

+0

在现在编辑的问题形式中,您会看到OP已经在使用angular.fromJson。这并不能解决问题。 –

相关问题