2012-09-19 122 views
-1

我想從雅虎的Finance API獲取JSON數據。解析CSV文件中的值作爲JSON通過jQuery AJAX

$.getJSON("http://query.yahooapis.com/v1/public/yql?q=select%20%2a%20from%20yahoo.finance.quotes%20WHERE%20symbol%3D%27WRC%27&format=json&diagnostics=true&env=store://datatables.org/alltableswithkeys&callback", function(data) { 
// I am parsing JSON string using data here 
}); 

問題是什麼時候股票關閉,我需要顯示最後的交易價值。我找到一個鏈接,它以CSV文件的形式返回值。所以我需要下載它並用jQuery解析它。

這是我迄今所做的:

$.getJSON("http://query.yahooapis.com/v1/public/yql?q=select%20%2a%20from%20yahoo.finance.quotes%20WHERE%20symbol%3D%27WRC%27&format=json&diagnostics=true&env=store://datatables.org/alltableswithkeys&callback", function(data) { 


if(data.query.results.quote.DaysLow == null && data.query.results.quote.DaysHigh == null){ 

    //When stock is closed this section works 
    var date = data.query.results.quote.LastTradeDate; 
    var datesplit = date.split('/'); 


     $.ajax({ 
     type: "GET", 
     url: "http://ichart.finance.yahoo.com/table.csv?s=WRC&a="+ datesplit[1] +"&b="+ datesplit[0] + "&c="+ datesplit[2] +"&d="+ datesplit[1] +"&e="+ datesplit[0] +"&f="+ datesplit[2] +"&g=d&ignore=.csv", 
     dataType: "text", 
     success: function(data) { 
      console.log(data); 
     } 
     }); 
} 
else{ 
    //When stock is not closed this section works 
    //There is no problem in this section 

}  
}); 

這是錯誤消息我得到:

的XMLHttpRequest無法加載 http://ichart.finance.yahoo.com/table.csv?s=WRC&a=18&b=9&c=2012&d=18&e=9&f=2012&g=d&ignore=.csv。 Access-Control-Allow-Origin不允許原始位置爲null。

你能幫我下載CSV文件嗎?

回答

1

我覺得沒有必要AJAX的,你可以簡單地調用它像

document.location.href = "http://ichart.finance.yahoo.com/table.csv?s=WRC&a="+ datesplit[1] +"&b="+ datesplit[0] + "&c="+ datesplit[2] +"&d="+ datesplit[1] +"&e="+ datesplit[0] +"&f="+ datesplit[2] +"&g=d&ignore=.csv"; 

它不會重新加載頁面

+0

都能跟得上這不是我找的,我需要解析JSON數據,並顯示在一些標籤,這段代碼只是下載文件..反正謝謝你的評論 –

0

可以使用任何服務器端腳本做

例如: -

$.ajax({ 
    type: "GET", 
    url: "your-server-side-file.php", 
    dataType: "text", 
    success: function(data) { 
     console.log(data); 
    } 
    }); 

,並在服務器文件your-server-side-file.php過程csv文件PA rse值。用你自己的格式返回。

例如PHP csv文件解析http://php.net/manual/en/function.fgetcsv.php