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

JSON转CSV时如何强制所有值包裹双引号?含npm包实现方案

解决方案

方案1:继续使用json-2-csv包(无需更换依赖)

你当前使用的包本身支持强制所有字段用双引号包裹,只需要在options中新增wrapAllFields: true配置项即可。该参数默认值为false,所以默认只会在字段包含分隔符等特殊字符时才添加包裹。
修改后的代码如下:

const converter = require('json-2-csv');

async function convertToCSV(jsonData) {
    try {
        let options = {
            delimiter: {
                wrap  : '"',
                field : ',',
                eol   : '\n'
            },
            wrapAllFields: true // 新增该行配置即可
        };
        const csvData = await converter.json2csvAsync(jsonData, options);
        console.log("Convert Data --- completed");
        return csvData;

    }
    catch (err) {
        console.error("ERROR in converting data " + err.message);
    }
}

运行后即可得到所有字段都被双引号包裹的预期输出:"Nissan","Murano","2013","7,106"

方案2:其他可选npm包实现

如果需要换用其他包实现需求,以下两个常用包都支持强制全字段包裹:

1. csv-writer

安装后配置alwaysQuote: true即可实现全包裹,示例代码:

const createCsvWriter = require('csv-writer').createObjectCsvWriter;

async function convertToCSV(jsonData) {
    const csvWriter = createCsvWriter({
        path: 'output.csv',
        header: [
            {id: 'Make', title: 'Make'},
            {id: 'Model', title: 'Model'},
            {id: 'Year', title: 'Year'},
            {id: 'Mileage', title: 'Mileage'}
        ],
        alwaysQuote: true
    });
    await csvWriter.writeRecords(jsonData);
}

2. papaparse

转换时配置quotes: true即可,示例代码:

const Papa = require('papaparse');

function convertToCSV(jsonData) {
    return Papa.unparse(jsonData, {
        quotes: true // 所有字段都添加双引号
    });
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 08:36:07