gpt4 book ai didi

javascript - 合并 json 对象和 javascript 对象

转载 作者:行者123 更新时间:2023-11-30 08:36:25 24 4
gpt4 key购买 nike

你好,我有来自 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);
}

然后,用聚合数据填充数组:

lotDashSales2Data = [{
data: [
["Jan", aggregate.Jan],
["Feb", aggregate.Feb],
["Mar", aggregate.Mar],
["Apr", aggregate.Apr],
// ... all 12 months
],
color: "#850d0d"
}];

编辑:因为你有 12 个月的不变性(它们永远不会改变),你可以通过简单地一一列出它们来避免复杂的代码,如我的代码所示。相反,如果您更喜欢更复杂的代码,则可以通过其他方式解决。这更多是一个选择和权衡的问题(灵 active 与可读性)。性能等其他因素应该无关紧要。

关于javascript - 合并 json 对象和 javascript 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30978963/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com