2015-11-06 17 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