如何解构meterConsumption JSON输出指定格式用于React图表绘制
数据提取逻辑实现
你可以直接使用以下JavaScript函数完成格式转换,适配React运行环境:
function formatConsumptionData(raw) { // 适配字段缺失的边界情况 const consumptionList = raw?.meterConsumption ?? []; // 如果需要按月份升序排列,可先执行排序: // consumptionList.sort((a, b) => a.month - b.month); return consumptionList.map(monthEntry => { // 给每日数据追加月份字段 return monthEntry.details.map(dailyEntry => ({ month: monthEntry.month, ...dailyEntry })); }); }
如果要修复原数据中部分timestamp年份写错(比如1月、2月混入2012年数据)的问题,可以在转换时统一从timestamp提取年份或者替换成指定年份。
输出结构合理性评估
这个结构是否合理完全取决于你React端的图表渲染场景:
- 如果你是按月份分组渲染图表,比如每个月对应单独的折线/柱状图、或者做月份tab切换展示,那这个结构非常合适:外层数组的每一项直接对应单个月份的全量日数据,不需要额外计算,遍历渲染效率很高。
- 如果你需要渲染全年趋势图、跨月份筛选数据,那这个嵌套结构的查找效率会比较低,建议额外输出一个扁平化的一维数组版本,或者额外生成一份以月份为key的映射对象,方便快速查找指定月份的数据。
- 额外建议:转换时可以给每个月的details数组按timestamp做升序排序,避免原数据日期乱序导致图表折线绘制异常。
内容的提问来源于stack exchange,提问作者Anish
相关产品推荐
相关产品推荐

