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

如何用Node.js的json2csv库为所有数据类型内容添加双引号

解决json2csv所有字段强制添加双引号的问题

要实现所有数据类型(数字、布尔值、null等)都被双引号包裹,只需在json2csv的配置中启用alwaysQuote,并配合自定义转换处理非字符串类型的格式化:

修改后的代码

import { Parser } from 'json2csv';
import fs from 'fs';

function generateCSV(jsonData: any[], fileName: string): void {
  const opts = {
    defaultValue: "",
    quotes: '"',
    alwaysQuote: true, // 强制所有字段添加双引号
    transforms: [
      {
        transform: (value) => {
          // 将null转为空字符串,其他非字符串类型转为字符串
          if (value === null) return "";
          if (typeof value !== 'string') return String(value);
          return value;
        }
      }
    ]
  };
  const parser = new Parser(opts);
  const csvData = parser.parse(jsonData);
  console.log(csvData);

  fs.writeFile(fileName, csvData, (err) => {
    if (err) {
      console.error("Error saving CSV:", err);
    } else {
      console.log("CSV saved successfully.");
      parentPort?.postMessage("success");
    }
  });
}

关键配置说明

  • alwaysQuote: true:强制json2csv对所有字段(包括数字、布尔值等)添加双引号,不再仅针对字符串类型
  • 自定义transform函数:
    • 将null转换为空字符串,匹配你期望的输出格式
    • 把数字、布尔值等非字符串类型转为字符串,确保它们被双引号包裹后是正确的文本格式

输出验证

使用你提供的输入数据,修改后的代码会生成符合要求的CSV:

"name","age","department","contact","phone","email"
"Alice","28","HR","hell","123-456-7890","alice@example.com"
"Bob","32","Engineering","false","987-654-3210","bob@example.com"
"Charlie","","Marketing","","9876543210",""

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 15:11:26