我已成功实现JSONP请求的代码,检索多个国家/地区的数据并将其显示为图表中的行。
但是,我还需要从JSON获取标题,单位,版权等,以便能够在图表上显示这些元素。
现在,我想知道如何做到这一点。
JSON响应可能如下所示:
[
[
"series",
[
{
"data": [
[
2007,
2239300
],
[
2008,
2237490
],
[
2009,
2167070
],
[
2010,
2204450
]
],
"name": "France"
},
{
"data": [
[
2007,
2324234
],
[
2008,
3456352
],
[
2009,
1241422
],
[
2010,
4543231
]
],
"name": "Germany"
}
]
],
[
"title",
{
"text": "Title here"
}
],
[
"yAxis",
{
"text": "The units here"
}
]
]
我的客户代码需要更改。目前它看起来像这样:
$.getJSON(url, {selectedCountries: "France,Germany,Switzerland", type: "jsonp"})
.done(function(data)
{
options.series = data;
var chart = new Highcharts.Chart(options);
})
.fail(function(jqxhr, textStatus, error)
{
var err = textStatus + ", " + error;
console.log( "Request Failed: " + err );
})
我想它必须变成这样的东西:
options.series = data['series']['data'];
options.title = data['title'];
但这不起作用。谁能给我一个暗示我应该做什么?非常感谢!
答案 0 :(得分:0)
好的,终于明白了。一个人必须将JSON作为对象传递(而不是数组,也不能作为字符串传递(因此,对象周围没有像'或'这样的引号!)。就像一个魅力here on fiddle。
这里是代码:
$(function () {
var options = {
chart: {
renderTo: 'container',
type: 'spline',
marginBottom: 50
},
series: [{}]
};
data = {
"title": {
"text": "Here goes the title"
},
"yAxis": {
"title": {
"text": "Here go the units"
}
},
"series": [{
"name": "France",
"data": [[2006,2189260],[2007,2239300],[2008,2237490],[2009,2167070],[2010,2204450]]
}]
};
options.series = data["series"];
options.title = data["title"];
options.yAxis = data["yAxis"];
var chart = new Highcharts.Chart(options);
});
非常感谢Sebastian Bochan的大力支持!