2014-05-20 16 views
0

我在創建基於列的高層圖時遇到了一些小問題,即提供系列數據和類別。的jquery的動態地喂jQuery json混沌數組在jQuery中的基於高位的列?

給料部:

success: function (data){ 
      for(var i in data){ 
        for(var j in data[i]){ 

         options.series.push({}); 
         options.xAxis.categories = data[i][j].categories; 
         options.series[i].name = j; 
          options.series[i].data = data[i][j].values; 


          break; 


        } 
       } 
       var chart = new Highcharts.Chart(options); 

    } 

它工作正常總是與所述第一類別命名運動,但第二類名稱中沒有示出,而是數1被示出。

JSON數據結構:

  [{"root":{"categories":["sports","occupation"],"values":[53.571,62.5]}},{"admin":{"categories":["sports"],"values":[33.333]}}] 

基本上,管理員是系列名稱 - 它們被正常顯示。

隨着示出的類別我有一個問題:它顯示只有第一運動,第二個被示出的是

系列值正常顯示(號碼1)。

所以唯一的問題是系列名稱。

任何想法是怎麼回事?

任何幫助表示讚賞。

+0

當它不工作(而不顯示系列名稱即數量),並JSON數據看起來相同工作的JSON數據? –

+0

你有現場演示嗎? –

+0

嗨。不幸的是,我沒有演示。對不起,我的錯。我編輯了我的描述。它總是與第一個系列名稱一起工作,但不與第二個系列名稱(類別第二個項目「職業」)。所以第二個系列名稱顯示爲1.我不知道爲什麼。 – amol01

回答

1

這是由覆蓋data中每個對象的類別造成的。 admin只有一個元素的類別,並且是data數組中的最後一個,因此會顯示此內容。我想你可以簡單地比較類別的長度,以使用具有最長點數的類別。例如:http://jsfiddle.net/2TuCW/68/

var data = [{ 
    "root": { 
     "categories": ["sports", "occupation"], 
     "values": [53.571, 62.5] 
    } 
}, { 
    "admin": { 
     "categories": ["sports"], 
     "values": [33.333] 
    } 
}]; 

var options = { 
    chart: { 
     renderTo: 'container' 
    }, 
    xAxis: { 
     categories: [] 
    }, 
    series: [] 
} 

for (var i in data) { 
    for (var j in data[i]) { 

     options.series.push({}); 
     if(options.xAxis.categories.length < data[i][j].categories.length) 
      options.xAxis.categories = data[i][j].categories; 
     options.series[i].name = j; 
     options.series[i].data = data[i][j].values; 

     break; 
    } 
} 
var chart = new Highcharts.Chart(options); 
+0

現在正在工作。謝謝。我也認爲這是因爲兩個用戶的類別長度不同,但沒有得到它爲什麼顯示1.爲什麼它來自? 1是索引/鍵,我對不對? – amol01

+0

是的,1是一個索引。在Highcharts中,例如,當您設置10個類別,但以20個值填充系列時,則在10個類別之後,下一個類別將是10,11,12等。 –