结合json对象和javascript对象
Combine json object and javascript object
你好,我有来自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],那会很酷吗?
您可以使用获取实际数据
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"
}];
EDIT:因为你有12个月的不变量(它们永远不会改变),所以你可以通过简单地逐一列出它们来避免复杂的代码,如我的代码所示。如果你喜欢更复杂的代码,相反,它可以用另一种方式来解决。这更多的是一个选择和权衡的问题(灵活性与可读性)。性能等其他因素应该无关紧要。
var flotDashSales2Data = JSON.parse(response);
使用JSON.parse
相关文章:
- 面向对象JavaScript中的私有函数
- 对象 Javascript 中的标签无效 - 想要添加事件列表器
- 将字符串转换为对象 javascript/jquery
- 正在检查对象javascript中是否存在嵌套属性
- 时间-日期对象JavaScript getUTCMilliseconds
- 仅在对象(javascript)中解析值
- 使用对象(JavaScript或jQuery)填充选择下拉列表
- 引用另一个对象javascript中的对象
- 如何删除列表中的对象?Javascript nodejs和下划线
- 无法从日期对象javascript获取日期和月份
- 如何在if语句中使用对象-Javascript
- 对象javascript错误
- 对象Javascript的少数实例
- 位置对象Javascript
- 将字符串传递到对象javascript中
- 获取对象Javascript或jQuery的最后一个值
- 鼠标接近对象Javascript
- 这个mixins代码是书中的错误吗;面向对象JavaScript的原理”;
- 使用闭包编译器编写更好的面向对象JavaScript完整示例代码
- 访问对象javascript数组中的对象属性值