我从服务中获取此数据:
{"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”。但是,它不起作用。我做错了什么?
答案 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数据转换为对象类型结构的辅助函数。