You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js中如何将特定JSON格式转换为分号分隔CSV文件

解决方法:转置数据结构生成目标CSV

你的问题在于原代码直接按原数组的行结构输出,但目标CSV需要转置原数据的行列——把原数据中的日期列转为行,原数据的行转为列。

具体实现代码

const data = [
  {
    "Month": "V",
    "6/2022": "2",
    "7/2022": "4",
  },
  {
    "Month": "L",
    "6/2022": "6",
    "7/2022": "8",
  },
];

// 提取所有日期键(排除"Month"字段)
const dateKeys = Object.keys(data[0]).filter(key => key !== "Month");

// 构建新表头:["Month", "V", "L"]
const newHeaders = ["Month", ...data.map(item => item.Month)];

// 构建日期行:每个日期对应各Month的值
const dateRows = dateKeys.map(date => {
  return [date, ...data.map(item => item[date])];
});

// 生成CSV内容
const csvContent = [newHeaders, ...dateRows].map(row => row.join(';')).join('\n');

console.log(csvContent);

代码说明

  1. 提取日期键:从第一个数据对象中筛选出除"Month"外的所有键(即6/2022、7/2022)
  2. 构建新表头:以"Month"开头,接着是原数据中每个对象的Month字段值(V、L)
  3. 生成日期行:遍历每个日期键,收集所有数据对象中该日期对应的值,组成一行
  4. 拼接CSV:将表头和日期行用分号和换行符拼接成最终的CSV字符串

执行后输出的结果就是你需要的格式:

Month;V;L
6/2022;2;6
7/2022;4;8

内容的提问来源于stack exchange,提问作者user1862965

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 04:19:58