2013-12-09 137 views
0

下面是我想創建highcharts餅圖數據的我JSON格式..要創建highcharts餅圖

{ 
    "title": {"text": "Pie"}, 

    "series": 
    [ 
    { 
     "type": "pie", 
     "name": "Actual", 
     "data": 
     [ 
      [ 
       "Salesgrowth", 
       45 
      ], 
      [ 
       "marketshare", 
       26.8 
      ] 
     ] 
    } 
    ] 
} 

這是有效的JSON,我收到來自Web服務,當這種輸出我把這種服務,並可以調用該方法來運行這個JSON輸出創造餡餅,然後我得到的錯誤如下,

Uncaught TypeError: Cannot set property 'renderTo' of undefined 

下面是jQuery函數,我利用打電話給我的文件,我保存這個JSON輸出來自我的網絡服務,

function loadJson() { 
     $(document).ready(function() { 
      //alert("inside"); 
      var chart; 
      var seriesData; 
      $.getJSON("val1.json", function (data) { 
       var chartoptions = data; 
       chartoptions.chart.renderTo = 'container'; 
       chart = new Highcharts.Chart(chartoptions); 

      }); 

     }); 
    }, 

這個函數可以和其他類型的圖表一起運行,比如條形圖,線圖和列圖...用各種圖形測試過,我只用餅圖來解決問題...任何幫助都會很大讚賞

---------更新問題------ 下面是我的JSON輸出我已經改變順序獲得價值

{ 
    "title":{"text":"Financial"}, 
    "chart":{"type":"pie"}, 
    "series": 
    [ {"name":"Actual-Market Share","data":["Market Share",30]},{"name":"Actual-Market Share","data":["Sales Growth",70]}]} 

以下是我的輸出

我無法識別IFY什麼,我正好與...任何想法搞亂將有很大的幫助...

enter image description here

----------更新的輸出--------- -

{ 
    "legend":{"enabled":"true"}, 
    "title":{"text":"Financial"}, 
    "chart":{"type":"pie"}, 
    "series":[{"name":"Actual","data":[{"str":"Market Share","flo":20}]}, 
       {"name":"Actual","data":[{"str":"Sales Growth","flo":30}]}, 
       {"name":"Actual","data":[{"str":"Operating Profit","flo":40}]}, 
       {"name":"Actual","data":[{"str":"Gross Margin %","flo":10}]}]} 
+0

不要更改您的系列對象。你最初發布的那個看起來很好。嘗試使用原始數據對象的解決方案。 – SteveP

+0

嘿@ SteveP..I做到了這一點..但它不工作.. – Reshma

+0

再試一次。我有一個錯字。 – SteveP

回答

1

您的json不包含圖表對象,因此設置chart.renderTo將不起作用。

如果你可以改變web服務,把它添加以下到您的JSON:

chart: { 
    }, 

如果你不能改變後端,你可以改變你的JavaScript設置之前添加圖表對象renderTo:

$.getJSON("val1.json", function (data) { 
      var chartoptions = data; 
      if (typeof chartoptions.chart === 'undefined') { 
       chartoptions.chart = {}; 
      } 
      chartoptions.chart.renderTo = 'container'; 
      chart = new Highcharts.Chart(chartoptions); 
     }); 
+0

謝謝..但如果你看到我更新的問題,那麼你會知道我已經包括圖表標記以及..你可以尋找更新的問題..它將非常感謝我然後..謝謝, – Reshma

+0

..你可以檢查我的更新的輸出,並告訴我什麼是錯的..我無法繪製餅圖... – Reshma

+0

您的系列數據是錯誤的。您需要一個具有多個數據點的系列對象。原始代碼中的系列是正確的。 – SteveP