2015-11-06 60 views
1

我从一个API以下JSON数组:点用JSON数组的变量右键

response = {"base":"USD","date":"2015-11-05","rates": 
{"AUD":1.3997,"BGN":1.7971,"BRL":3.8008}} 

从以下http查询,我得到:

$http.get(url).success(function(response){ 

让我们假设

quote = "AUD"; 

我怎样才能指出澳元价格的回应率(即利率= 1.3997)?

$scope.rate = response.rates.quote; 

不工作...

+4

response.rates [报价];你可以使用括号表示法通过变量 –

回答

2

如果使用

rates.quote 

这意味着quoterates对象,它是没有的属性;

quote的值是rates

财产尝试这样

$scope.rate = response.rates[quote]; 
+0

获得价值完美!谢谢 – cam

4

对象的这种被称为访问属性值,这是我们如何做到这一点

var quote = 'AUD' 
 
var response = {"base":"USD","date":"2015-11-05","rates": 
 
{"AUD":1.3997,"BGN":1.7971,"BRL":3.8008}} 
 
object = JSON.parse(JSON.stringify(response)) 
 

 
document.write(object.rates[quote])

0

这是其中一种情况,即使它们通常可以互换,但必须使用方括号表示法而不是点表示法。当你知道属性的真实名称时,只能使用点符号。当您使用变量作为占位符时,您必须使用方括号。

0

Dot notaion有其限制,如其他人所暗示的那样使用括号。

点符号是:

对象属性的名称可以是任何有效的JavaScript字符串,或任何可以被转换成一个字符串,包括空字符串。但是,只能使用方括号表示法访问任何不是有效JavaScript标识符的属性名称(例如,具有空格或连字符的属性名称,或以数字开头的属性名称)。这种表示法也非常有用的,当属性名称将被动态地确定(当没有确定的属性的名字,直到运行时)

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects