API不会采用连接输入

时间:2018-01-29 15:59:52

标签: javascript jquery api

我正在使用货币转换API(http://fixer.io/)进行测试,现在我只是调用API来查找基础货币的汇率。现在我已经在API网址中硬编码了基础货币。 我能够获得汇率对象,但我无法获得与基础货币相对应的具体汇率,例如,如果基础货币是美元,而我正在查看日元的汇率它没有显示价值。

我试图仅使用JQuery来实现这一目标。

var link1 = "https://api.fixer.io/latest?base=USD";

 $.ajax({
  type: "GET",
  url: link1,
  success: function(rates) {
   $.each(rates, function(i, exchangeRates) {
       if(exchangeRates+"."+ "JPY"){
        var z = exchangeRates+"."+"JPY"; //This concat is not working
        console.log(z);
      }
      else{
       console.log("error");
      }
  });
}
});

我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

首先rates是一个对象,因此您需要使用括号表示法来按键访问它。您不能只是将字符串附加到变量名称并将其用作访问者。

其次,您不需要循环返回的数据,因为它是嵌套对象。试试这个:

var link1 = "https://api.fixer.io/latest?base=USD";
var targetCurrency = 'JPY';

$.ajax({
  type: "GET",
  url: link1,
  success: function(response) {
    var rate = response.rates[targetCurrency]; // note bracket notation here
    console.log(rate);
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>