Reputation: 13487
Please consider this JSON
:
[
{
"Categories": ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
},
{
"SeiresName": "Ava",
"Data": ["49.9", "71.5", "106.4", "129.2", "144.0", "176.0", "135.6", "148.5", "216.4", "194.1", "95.6", "54.4"]
},
{
"SeiresName": "Nima",
"Data": ["83.6", "78.8", "98.5", "93.4", "106.0", "84.5", "105.0", "104.3", "91.2", "83.5", "106.6", "92.3"]
},
{
"SeiresName": "Arian",
"Data": ["48.9", "38.8", "39.3", "41.4", "47.0", "48.3", "59.0", "59.6", "52.4", "65.2", "59.3", "51.2"]
}
]
I want to create a Column
chart and add write code:
$(function () {
$.getJSON('JSON Data/ColumnchartWithSeries.json', function (data) {
console.log(data);
$('#container').highcharts({
chart: {
type: 'column'
},
title: {
text: 'Title'
},
xAxis: {
categories: [],
},
yAxis: {
min: 0,
title: {
text: 'Y-Axis Title'
}
},
legend: {
reversed: true
},
series: [{}]
});
});
});
I don't know how I can assign Categories
and add series dynamically.How I can do this?
Thanks
Upvotes: 0
Views: 1579
Reputation: 10075
You have to process JSON
string
var categories = []; //categories array to highchart
var seriesData = []; //series object to highchart
for (var i = 0; i < jsondata.length; i++) {
if (jsondata[i].Categories) {
categories = jsondata[i].Categories.replace(/\[|]|'/g, '').split(',')
}
if (jsondata[i].SeiresName) {
seriesData.push({
name: jsondata[i].SeiresName,
data: JSON.parse(jsondata[i].Data)
})
}
}
Fiddle working demo
Update
Change in JSON
Data updated accordingly
for (var i = 0; i < jsondata.length; i++) {
if (jsondata[i].Categories) {
categories = jsondata[i].Categories
}
if (jsondata[i].SeiresName) {
seriesData.push({
name: jsondata[i].SeiresName,
data: jsondata[i].Data.map(Number)
})
}
}
Upvotes: 2