使用json数组的变量指向右键

时间:2015-11-06 09:02:36

标签: javascript json angularjs

我从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;

不起作用......

4 个答案:

答案 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

这意味着quoterates对象的属性,而不是;

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