2016-10-27 180 views
0

我想從Flurry API訪問JSON來繪製那裏的信息。但是,當我嘗試運行該圖時,我在發送陣列的空間中獲得了Data column(s) for axis #0 cannot be of type string警報。下面是我的代碼:谷歌圖表JSON問題

google.charts.load('current', {packages: ['corechart', 'bar']}); 
google.charts.setOnLoadCallback(fillData); 

function fillData() { 
    var dataArray = []; 
    var tempArray = ['@name', '@totalCount']; 

    dataArray.push(tempArray); 
    var xmlhttp = new XMLHttpRequest(); 
    xmlhttp.open('GET', '//flurry address', true); 
    xmlhttp.onreadystatechange = function() { 
    if (xmlhttp.readyState == 4) { 
    if(xmlhttp.status == 200) { 
     var obj = JSON.parse(xmlhttp.responseText); 
     for (i = 0;i < obj.parameters.key[0].value[i]["@name"]; i++) 
     { 
      dataArray.push([obj.parameters.key[0].value[i]["@name"], obj.parameters.key[0].value[i]["@totalCount"]]); 
      alert(dataArray[i]); 
     } 
    } 
    } 
}; 
    //xmlhttp.send(null); 

drawBasic(dataArray); 

} 


function drawBasic(dataarray) { 
    var data = google.visualization.arrayToDataTable(dataarray); 

    var options = { 
    title: 'Login Counts', 
    chartArea: {width: '50%'}, 
    hAxis: { 
     title: 'Login Count', 
     minValue: 0 
    }, 
    vAxis: { 
     title: 'Company' 
    } 
    }; 

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

    chart.draw(data, options); 
} 
+0

json在哪裏?你嘗試加載幾行嗎?例如2或3.您正在調用'drawBasic(dataArray);'onreadystatechange之外。您是否嘗試在警報後調用它?在內部'onreadystatechange' – Mikel

+0

「parameters」:{「key」:[{「@ name」:「app」,「value」:[{「@totalCount」:「3」,「@ name」:「SLK_demo」 { 「@totalCount」: 「6」, 「@名」: 「GOLD」},{ 「@ TOTALCOUNT」: 「72」, 「@名」: 「app_Demo」},{ 「@ TOTALCOUNT」: 「9」, 「@name」: 「mortgage360」},{ 「@ TOTALCOUNT」: 「378」, 「@名」: 「lenderx」},{ 「@ TOTALCOUNT」: 「2」, 「@名」: 「東南」}] },{「@ name」:「button」,「value」:{「@ totalCount」:「470」,「@ name」:「Login」}}]}} – AirwalkerX

+0

這就是我正在使用的json 。 – AirwalkerX

回答

0

嘗試此處顯示的代碼:

https://jsfiddle.net/9j5x97r7/2/

的的jsfiddle不工作,因爲我不能加載API和我沒有時間。但是,如果你讓它加載它的作品(嘗試在你的代碼中)。

第一行與您所做的不同。 for是錯的

而且你需要解析數字,因爲在響應中是一個字符串。

讓我知道它是否對你有幫助