你好,我有这种格式的MySql的json响应
{
"allResult": [{
"UkupanBroj": "1",
"mesec": "Jul"
}, {
"UkupanBroj": "3",
"mesec": "Jun"
}, {
"UkupanBroj": "1",
"mesec": "May"
}],
"resultByKurs": null
}
我正在尝试从此响应对象创建以传递到图表插件
var flotDashSales2Data = [{
data: [
["Jan", 240],
["Feb", 240],
["Mar", 290],
["Apr", 540],
["May", 480],
["Jun", 220],
["Jul", 170],
["Aug", 190]
],
color: "#850d0d"
}];
是否可以从我的回复中创建新对象???通过这种方式,如果我在某个月的回复中没有在我的数据中设置表单示例[“Jan”,0],那么我会传递给插件吗?
答案 0 :(得分:5)
您可以通过以下方式获取实际数据:
data_result = JSON.parse(result);
它的格式不同,但您可以将其转换为您需要的格式。
要汇总您可以按以下方式执行操作的数据:
var aggregate = {
"Jan": 0,
"Feb": 0,
"Mar": 0,
"Apr": 0,
"May": 0,
"Jun": 0,
"Jul": 0,
"Aug": 0 // fill in all 12 months
};
for (i = 0; i < data_result.allResult.length; i++)
{
item = data_result.allResult[i];
aggregate[item.mesec] += parseInt(item.UkupanBroj, 10);
}
然后,使用aggregate
数据填充数组:
lotDashSales2Data = [{
data: [
["Jan", aggregate.Jan],
["Feb", aggregate.Feb],
["Mar", aggregate.Mar],
["Apr", aggregate.Apr],
// ... all 12 months
],
color: "#850d0d"
}];
编辑:因为你有12个月的不变量(它们永远不会改变)你可以通过简单地逐个列出它们来避免复杂的代码,如我的代码所示。如果您更喜欢更复杂的代码,那么可以通过其他方式解决问题。这更多的是选择和权衡(灵活性与可读性)。其他因素如表现应该是无关紧要的。
答案 1 :(得分:0)
var flotDashSales2Data = JSON.parse(response);
使用JSON.parse