2010-04-14 31 views
1

HI 我對json和js圖表都很新穎。我想從jquery.post()輸入JSONObject到一個簡單的JS圖表(條形圖)?

在條形圖中,它們被給予這樣的硬編碼的陣列的示例中,

var myData = new Array(['U.S.A.', 69.5], ['Canada', 2.8], ['Japan & SE.Asia', 5.6]); 
var myChart = new JSChart('graph', 'bar'); 
myChart.setDataArray(myData); 

取而代之的是我想使用的$ .POST()方法,該方法是在JSON的響應。這是一段代碼。

var myData=[]; 
$.post("JSONServlet", function(data) { 
    $.each(data.Userdetails, function(i, data) { 

     myData[i] = []; 
     myData[i]['text'] = data['firstname']; 
     myData[i]['id'] = data['ssn']; 

     alert("first name " +myData[i]['text']+ " salary " +myData[i]['id']); 
     // I am getting correct data here, but how to assign this myData to barchart 
    }); 
}, "json"); 

這是使用的邏輯或如何從響應中獲取用戶名和工資,並將其傳遞給條形圖。請幫忙。我堅持這一點。

在此先感謝。

回答

1

如果我正確地理解了你的話,你正在嘗試生成一個類似的條形圖,與你的第一個例子一樣,使用firstname作爲關鍵字,ssn作爲值。在這種情況下,你可以這樣做:

$.post("JSONServlet", function(data) {  
    var myData = [];  
    $.each(data.Userdetails, function(i, data) { 
     myData[i] = [data.firstname, data.ssn]; 
    });  
    var myChart = new JSChart('graph', 'bar'); 
    myChart.setDataArray(myData); 
}, "json"); 
+0

沒錯。 myData應該是一個數組的數組,而不是一個對象數組。 – timdev 2010-04-14 21:38:41

+0

非常感謝。 我在myData中獲取用戶名和ssn。但是, 警報(「數組條形圖」+ myData); var myChart = new JSChart('graph','bar'); myChart.setDataArray(myData); myChart.draw(); 但是在運行時,我收到一條警告消息: JScharts:在錯誤的fromat中爲所選圖表類型輸入數據。沒有數據加載。 – user316945 2010-04-15 18:13:00