2015-04-30 26 views
0

我有一個Forecast.io的API密鑰,它給了我在文件here中找到的JSON輸出。我想創建一些包含的數據圖(例如一段時間內的溫度變化)。一旦我將數據獲取到JavaScript數組中,我計劃使用Google Charts API來創建圖表,但我正在努力找出將JSON數據有效轉換爲JavaScript數組的最佳方法。如何將JSON文件轉換爲JS數組?

環顧各種論壇,幾個地方引用他們正在使用jQuery。這是必要嗎?如果是這樣,你能指點我一個很好的教程來獲得該設置?

P.S.如果你不能說,我在這方面是一個新手,所以請原諒我對我的工作非常基本的瞭解。

+0

這可能是這個問題的一個可能重複:http://stackoverflow.com/questions/16896219/how-can-i-convert-json-string-to-google-visualization-datatable – jithinpt

+0

什麼是「JavaScript表」? –

+0

對不起,「陣列」。 – tlewis3348

回答

2

你可以直接分配JSON給一個變量,而不需要數組:

var json_object = your_raw_json; 

那麼你可以使用JSON對象來填充圖表上的行。 下面是一個使用了「ApparentTempMax」從您提供的JSON的例子:

google.load('visualization', '1', {packages: ['corechart', 'line']}); 
google.setOnLoadCallback(drawBasic); 

function drawBasic() { 
    var data = new google.visualization.DataTable(); 
    data.addColumn('number', 'Day'); 
    data.addColumn('number', 'ApparentTempMax'); 

    //WHERE THE DATA IS BEING SET: START 

    var rows = new Array; 

    var daily_weather_data = json_object.daily.data; 
    for(var i=0; i<daily_weather_data.length; i++){ 
     var day_data = daily_weather_data[i]; 
     rows.push([i, day_data.apparentTemperatureMax]); 
    } 

    /* 
    At this point rows will look like this: 
    [ 
     [0, 74.24], [1, 68.1], [2, 77.03], [3, 77.68], 
     [4, 78.5], [5, 80.36], [6, 87.44], [7, 89.94] 
    ] 
    */ 

    data.addRows(rows); 

    //WHERE THE DATA IS BEING SET: END 

    var options = { 
     hAxis: { 
      title: 'Day' 
     }, 
     vAxis: { 
     title: 'ApparentTempMax' 
     } 
    }; 

    var chart = new google.visualization.LineChart(document.getElementById('chart_div')); 

    chart.draw(data, options); 
} 

運作實例:https://jsfiddle.net/6qpf7tek/2/

+0

哇!謝謝!這正是我所期待的! – tlewis3348

-1

定義JSON的:

JSON類似於寫作數組和對象的JavaScript的方式,有一些限制。所有的屬性名都必須用雙引號括起來,並且只允許使用簡單的數據表達式 - 沒有函數調用,變量或涉及實際計算的任何事情。 JSON中不允許留言。

here's an excellent learning ref.

在JS從中獲取數據,併爲JSON你有兩種具體方法JSON.stringify()和JSON.parse()

那麼你的第一步是解析JSON數據

var forecast = JSON.parse(YOUR_FILE) 

然後從這裏你可以實現任何方法和功能,我建議你堅持使用JS,因爲這你的對象是如何存儲的(或jQuery);

+0

不要忘記在數據之後添加[before和a],因爲它是一個數組。否則解析可能會失敗。 – MiltoxBeyond

+0

其實我試着解析這個json在本地文件..但輸出看起來是正確的,你會在哪裏放方括號? – maioman

+0

我知道JSON如何工作以及如何讓他們進入JavaScript。我主要問的是,是否有更高效的方法來收集數組中特定鍵的所有條目。 – tlewis3348