以下是我想要在highcharts中创建饼图的JSON数据格式。
{
"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函数,我从我的Web服务中存储了这个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);
});
});
},
并且此功能与其他类型的图表(如条形图,折线图和柱形图)运行良好...使用各种图表进行测试,我只能用饼图面临问题...任何帮助将不胜感激< / p>
---------更新的问题------ 下面是我为了获取值而更改的JSON输出
{
"title":{"text":"Financial"},
"chart":{"type":"pie"},
"series":
[ {"name":"Actual-Market Share","data":["Market Share",30]},{"name":"Actual-Market Share","data":["Sales Growth",70]}]}
以下是我得到的输出,
我无法确定我到底搞砸了什么......任何想法都会有很大的帮助......
----------更新了输出-----------
{
"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 :(得分:1)
您的json不包含图表对象,因此设置chart.renderTo将不起作用。
如果您可以更改网络服务,请将其添加到您的json:
chart: {
},
如果无法更改后端,可以在设置renderTo之前更改javascript以添加图表对象:
$.getJSON("val1.json", function (data) {
var chartoptions = data;
if (typeof chartoptions.chart === 'undefined') {
chartoptions.chart = {};
}
chartoptions.chart.renderTo = 'container';
chart = new Highcharts.Chart(chartoptions);
});