📜  json 到 csv nodejs (1)

📅  最后修改于: 2023-12-03 15:17:04.413000             🧑  作者: Mango

Node.js 将 JSON 转换成 CSV

在开发过程中,有时我们需要将服务器端所返回的 JSON 数据转换成 CSV 文件。本篇文章将介绍如何使用 Node.js 将 JSON 数据转换成 CSV 文件。

安装依赖

在开始之前,我们需要安装一个非常有用的库,它是 json2csv。该库可以将 JSON 转换成类似 Excel CSV 格式的文件。

npm install json2csv
使用方法
const json2csv = require('json2csv').parse;
const fs = require('fs');
 
const jsonData = [
    {
        name: '张三',
        age: 18,
        gender: '男'
    },
    {
        name: '李四',
        age: 20,
        gender: '女'
    }
];
 
const fields = ['name', 'age', 'gender'];
 
try {
    const csv = json2csv(jsonData, { fields });
    fs.writeFileSync('output.csv', csv);
    console.log('CSV 文件已创建成功!');
} catch (err) {
    console.error(err);
}

通过上面的代码,我们可以看到:

  1. 我们首先引入了 json2csvfs 模块。
  2. 创建了一个 JSON 数据的数组。
  3. 定义了一个 fields 数组,用于指定需要转换的 JSON 数据的字段。
  4. 使用 json2csv 方法将 JSON 数据转换成 CSV 格式的文件。
  5. 使用 fs 模块将数据写入 output.csv 文件。
解释说明

json2csv 函数接受两个参数:

  • 第一个参数是待转换的 JSON 数据。
  • 第二个参数是一个可选的配置项对象。它用于指定需要转换的字段和其它选项。

在上面的例子中,我们使用 fs 模块将转换后的数据写入磁盘文件。如果你愿意,也可以通过 HTTP 请求将数据返回给客户端。

可选配置项

可选配置项对象有以下一些属性:

  • fields: Array<string>: 需要转换的字段名数组,默认为 []
  • delimiter: string: CSV 文件分隔符,默认为 ,
  • header: boolean | Array<string>: 是否添加头部,默认为 true
  • quotes: string: 转义引号字符,默认为 "
  • doubleQuotes: string: 转义转义引号字符,默认为 "
  • eol: string: CSV 文件行结束符,默认为\n

使用示例:

const jsonData = [
  {
    name: 'John Doe',
    age: 33,
    gender: 'male',
    emailAddress: 'johndoe@example.com'
  }
];

const fields = ['name', 'age'];

const opts = {
  fields,
  delimiter: ';',
  header: true,
  quotes: '"',
  doubleQuotes: '"',
  eol: '\r\n'
};

const csv = json2csv(jsonData, opts);
console.log(csv);
结论

使用 json2csv 库非常方便,可以快速地将 JSON 数据转换为 CSV 数据。在实际应用中,你可以根据需求来定制输出的 CSV 数据,让它满足你的实际应用需求。