我从api获得以下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";
如何指出响应中的汇率的AUD值(即汇率= 1.3997)?
$scope.rate = response.rates.quote;
不起作用......
答案 0 :(得分: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])

答案 1 :(得分:3)
如果您使用
rates.quote
这意味着quote
是rates
对象的属性,而不是;
quote
的值是rates
试试这个
$scope.rate = response.rates[quote];
答案 2 :(得分:0)
这是必须使用方括号而非点符号的时候之一,即使它们通常是可互换的。当您知道该物业的真实姓名时,您只能使用点表示法。当您使用变量作为占位符时,必须使用方括号。
答案 3 :(得分:0)
Dot notaion有其限制,使用括号已经建议的其他人。
点符号是:
对象属性名称可以是任何有效的JavaScript字符串,也可以是可以转换为字符串的任何内容,包括空字符串。但是,任何不是有效JavaScript标识符的属性名称(例如,具有空格或连字符的属性名称,或以数字开头的属性名称)只能使用方括号表示法访问。当动态确定属性名称时(直到运行时才确定属性名称),此表示法也非常有用
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects