Javascript 从Yahoo选择一种货币对的实时汇率

Javascript 从Yahoo选择一种货币对的实时汇率,javascript,json,ajax,Javascript,Json,Ajax,我正在使用此API链接: 但这似乎不是选择具有特定id的元素的方法 所以,检查链接,我的问题是,内部结果->费率元素具有不同的id,所以现在我只想要USDEUR指数,我尝试了类似的方法 <script> setInterval(function(){ //somehow convert xml to json $.getJSON('http://query.yahooapis.com/v1/p

我正在使用此API链接:

但这似乎不是选择具有特定id的元素的方法

所以,检查链接,我的问题是,内部结果->费率元素具有不同的id,所以现在我只想要USDEUR指数,我尝试了类似的方法

<script>
            setInterval(function(){ 
                //somehow convert xml to json
                $.getJSON('http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.xchange%20where%20pair%20in%20%28%22USDEUR%22,%20%22USDJPY%22,%20%22USDBGN%22,%20%22USDCZK%22,%20%22USDDKK%22,%20%22USDGBP%22,%20%22USDHUF%22,%20%22USDLTL%22,%20%22USDLVL%22,%20%22USDPLN%22,%20%22USDRON%22,%20%22USDSEK%22,%20%22USDCHF%22,%20%22USDNOK%22,%20%22USDHRK%22,%20%22USDRUB%22,%20%22USDTRY%22,%20%22USDAUD%22,%20%22USDBRL%22,%20%22USDCAD%22,%20%22USDCNY%22,%20%22USDHKD%22,%20%22USDIDR%22,%20%22USDILS%22,%20%22USDINR%22,%20%22USDKRW%22,%20%22USDMXN%22,%20%22USDMYR%22,%20%22USDNZD%22,%20%22USDPHP%22,%20%22USDSGD%22,%20%22USDTHB%22,%20%22USDZAR%22,%20%22USDISK%22%29&env=store://datatables.org/alltableswithkeys', function(data) {
                var USD = 1/data.query.results.rate['USDEUR'].Rate * 1.955
                document.getElementById('output-value').innerHTML = USD * document.getElementById('input-value').value;     
                });
             }, 500);
        </script>

setInterval(函数(){
//以某种方式将xml转换为json
$.getJSON('http://query.yahooapis.com/v1/public/yql?q=select%20*%20自%20雅虎金融交易所%20其中%20对%20对%20对%20对%20对%20对%22美元欧元%22、%20%22美元日元%22、%20%22美元人民币%22、%20%22美元捷克克朗%22、%20%22美元丹麦克朗%22、%20%22美元瑞士法郎%22、%20%22美元贷款%22、%20%22美元贷款%22、%20%22美元印尼盾%22、%20%22美元瑞典克朗%22、%20%22瑞士法郎%22、%20%22美元挪威克朗%22、%,%20%22USD卢布%22、%20%22USDTRY%22、%20%22USDAUD%22、%20%22USDBRL%22、%20%22USDCAD%22、%20%22USDCNY%22、%20%22USDHKD%22、%20%22USDILS%22、%20%22USDINR%22、%20%22USDKRW%22、%20%22USDMXN%22、%20%22USDMYR%22、%20%22USDPHP%22、%20%22USDSGD%22、%22、%20%22USD%22、%22%22%22%22%22%22%22USDTHB%22、%22、%22%22环境和22%22%22%22%美元风险=store://datatables.org/alltableswithkeys'功能(数据){
var USD=1/data.query.results.rate['USDEUR'].rate*1.955
document.getElementById('output-value')。innerHTML=USD*document.getElementById('input-value')。value;
});
}, 500);

如果您通过解码器运行URL(例如,PHP的
urldecode()
函数,我就是这么做的,或者是在线可用的众多解码器中的一个),那么这更容易理解。URL只是此解码器的编码版本:

http://query.yahooapis.com/v1/public/yql?q=
select *
from yahoo.finance.xchange
where pair in ("USDEUR", "USDJPY", "USDBGN", "USDCZK", "USDDKK", 
    "USDGBP", "USDHUF", "USDLTL", "USDLVL", "USDPLN", "USDRON", 
    "USDSEK", "USDCHF", "USDNOK", "USDHRK", "USDRUB", "USDTRY", 
    "USDAUD", "USDBRL", "USDCAD", "USDCNY", "USDHKD", "USDIDR", 
    "USDILS", "USDINR", "USDKRW", "USDMXN", "USDMYR", "USDNZD", 
    "USDPHP", "USDSGD", "USDTHB", "USDZAR", "USDISK")
&env=store://datatables.org/alltableswithkeys
我添加了一些格式,以使事情变得明显。这是一个带有对名称列表的语句(实际上只是一个SQL SELECT语句)

要获得所需的结果,只需从URL中删除其他对,如下所示:

响应(格式化为可读性):


美元/欧元
0.9217
1/26/2016
下午7:43
0.9218
0.9217

如果您通过解码器运行URL(例如,PHP的
urldecode()
函数,我就是这么做的,或者是在线可用的众多解码器中的一个),那么这更容易理解。URL只是此解码器的编码版本:

http://query.yahooapis.com/v1/public/yql?q=
select *
from yahoo.finance.xchange
where pair in ("USDEUR", "USDJPY", "USDBGN", "USDCZK", "USDDKK", 
    "USDGBP", "USDHUF", "USDLTL", "USDLVL", "USDPLN", "USDRON", 
    "USDSEK", "USDCHF", "USDNOK", "USDHRK", "USDRUB", "USDTRY", 
    "USDAUD", "USDBRL", "USDCAD", "USDCNY", "USDHKD", "USDIDR", 
    "USDILS", "USDINR", "USDKRW", "USDMXN", "USDMYR", "USDNZD", 
    "USDPHP", "USDSGD", "USDTHB", "USDZAR", "USDISK")
&env=store://datatables.org/alltableswithkeys
我添加了一些格式,以使事情变得明显。这是一个带有对名称列表的语句(实际上只是一个SQL SELECT语句)

要获得所需的结果,只需从URL中删除其他对,如下所示:

响应(格式化为可读性):


美元/欧元
0.9217
1/26/2016
下午7:43
0.9218
0.9217

@dandavis感谢您指出这一点。我已经好几年没有使用任何雅虎API了,我也没听说过这一点。我更新了我的答案。@dandavis感谢您指出这一点。我已经好几年没有使用任何雅虎API了,我也没听说过这一点。我更新了我的答案。