NodeJS JSON数据转为CSV存入文件

注意 :导出数据值 null 与 "" 之间的区别

1. 执行代码

// 用到的类库
const fs = require('fs-extra')  // 文件读写
const Json2csvParser = require('json2csv').Parser;  // 数据格式转换
const iconv = require('iconv-lite');  //  数据编码转换
const path = require('path')

// 列头与数据
const fields = ['car', 'price', 'color', 'for', 'aaa'];
const data = [
  {
    car: 'Audi',
    price: 40000,
    color: 'blue',
    for: null,
    aaa: ''
  }, {
    car: 'BMW',
    price: 35000,
    color: 'black',
    for: null,
    aaa: ''
  }, {
    car: 'Porsche',
    price: 60000,
    color: 'green',
    for: null,
    aaa: ''
  }
]

// 接口数据转换
const json2csvParser = new Json2csvParser({fields});
const csv = json2csvParser.parse(data);
console.log(csv);

// 数据编码调整
const csvBuf = new Buffer(csv);
const str = iconv.decode(csvBuf, 'utf-8');
const str2 = iconv.encode(str, 'gbk');

// 文件导出
const file = `\\records\\${Date.now()}.csv`;
const filePath = path.resolve('./') + file
fs.outputFileSync(filePath, str2);

2. 导出结果

"car","price","color","for","aaa"
"Audi",40000,"blue",,""
"BMW",35000,"black",,""
"Porsche",60000,"green",,""
posted @   xustch  阅读(714)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示