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

JS/TS通用深层嵌套JSON转CSV函数实现问题求助

解决深层嵌套JSON转CSV时展开数组的问题

我懂你遇到的麻烦了——你希望把JSON里的数组字段拆分成单独的行,让每个数组元素都和对应的app值配对,但默认的json2csv配置只会把整个数组当成一个单元格内容输出。别担心,用json2csv的unwind选项就能轻松解决这个问题!

问题原因

你当前的代码只是指定了要导出的字段,但没有告诉json2csv需要展开device这个数组字段,所以它会把数组直接序列化为字符串放进CSV单元格里。

修改后的代码

我们只需要在配置里添加unwind选项指定要展开的数组字段,同时设置分隔符为你需要的分号;:

private ConvertToCSV(json: string, fields: string[]): string {
  const Json2csvParser = require("json2csv").Parser;
  // 添加unwind和delimiter配置
  const options = {
    fields,
    unwind: "device", // 指定要展开的数组字段
    delimiter: ";"    // 设置CSV的分隔符为分号
  };
  const parser = new Json2csvParser(options);
  const parsedJson = JSON.parse(json);
  const csv = parser.parse(parsedJson);
  console.log(parsedJson);
  console.log(csv);
  return csv;
}

效果验证

当你传入你提供的JSON输入时,这段代码会输出你预期的结果:

app;device
app1;c1
app1;c2
app1;c3
app1;c4
app2;b1
app2;b2

扩展说明

如果你的JSON里有多个需要展开的数组字段,可以把unwind设置为数组形式,比如:

unwind: ["device", "anotherArrayField"]

这样就能同时展开多个数组字段,生成对应的多行内容啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:06:43