2013-12-09 195 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