【单个文件的转化】
 
1.安装json2csv模块将json转成csv
 
jsonToCSV.js
var fs = require('fs');
const Json2csvParser = require('json2csv').Parser;
const fields = ['car', 'price', 'color', 'for']; let myData = fs.readFileSync('./data.json'); const json2csvParser = new Json2csvParser({ fields }); const csv = json2csvParser.parse(JSON.parse(myData)); fs.writeFile("./data.csv", csv, function(err) {
if(err) {
return console.log(err);
} console.log("The file was saved!");
});
data.json
[
{
"car": "Audi",
"price": 40000,
"color": "blue",
"for": ""
}, {
"car": "BMW",
"price": 35000,
"color": "black",
"for": ""
}, {
"car": "Porsche",
"price": 60000,
"color": "green",
"for": ""
}
]
 
2.安装csvtojson模块将csv转成json
 
csvToJson.js
const csvFilePath = "./data.csv"
const csv=require('csvtojson');
var fs = require('fs'); csv()
.fromFile(csvFilePath)
.then((jsonObj)=>{
jsonObj = JSON.stringify(jsonObj)
fs.writeFile("./file/newData.json",jsonObj,'utf-8', function(err) {
if(err) {
return console.log(err);
} console.log("The file was saved!");
});
})

csv截图

优化:

【目录下多个文件转化】

 文件目录截图
 
 
jsonToCSV.js
let fs = require('fs');
const curDirPath = 'F:/json2CSV/00originJson';
const Json2csvParser = require('json2csv').Parser; fs.readdir(curDirPath, (err, files) => {
if(err) {
return console.log(err);
} files.forEach(file => { fs.readFile(curDirPath + `/${file}`, 'utf-8', (err, data) => {
if(err) {
return console.log(err);
} let keyArr = []; data = JSON.parse(data); for(let i in data) {
keyArr.push(Object.keys(data[i]));
} let keyArrSort = keyArr.sort((a, b) => {
return b.length - a.length
}) let fields = keyArrSort[0]; const json2csvParser = new Json2csvParser({ fields }); const csv = json2csvParser.parse(data); let csvFileName = file.replace(/\.{1}[a-z]{1,}$/, ".csv"); fs.writeFile(`./01csvFile/${csvFileName}`, csv, function(err) {
if(err) {
return console.log(err);
} console.log("The file was saved!");
}); });
});
});
csvToJson.js

const curDirPath = 'F:/json2CSV/01csvFile';
const csv=require('csvtojson');
let fs = require('fs'); fs.readdir(curDirPath, (err, files) => {
if(err) {
return console.log(err);
} files.forEach(fileName => {
csv()
.fromFile(`${curDirPath}/${fileName}`)
.then((jsonObj)=>{ jsonObj = JSON.stringify(jsonObj); let jsonFileName = fileName.replace(/\.{1}[a-z]{1,}$/, ".json"); fs.writeFile(`./02newJsonFile/${jsonFileName}`, jsonObj, 'utf-8', function(err) {
if(err) {
return console.log(err);
} console.log("The file was saved!");
});
})
});
});

最新文章

  1. ASP.NET Linux部署(2) - MS Owin + WebApi + Mono + Jexus
  2. Ubuntu下给Sublime Text 3添加用python3运行文件
  3. Ubuntu 12.04安装NFS server
  4. logback的使用和logback.xml详解
  5. tp框架的url模式
  6. 网页布局之flex
  7. C#演示如何使用 XML 将源码编入文档
  8. 【杂谈】tocmat是何时写回响应数据报的
  9. 【转】配置不当引起高危漏洞?看加密货币交易所如何正确用Spring Boot Actuaotr框架
  10. C# List去重的三种方法
  11. Redis 未授权访问漏洞(附Python脚本)
  12. 洛谷P3953 逛公园 [noip2017] 图论+dp
  13. jquery遍历之children()与find()的区别
  14. iOS 百度地图判断用户是否拖动地图的检测方法
  15. scrapy爬取验证码登录网页
  16. .net ASPxGridView 使用手记
  17. 平滑重启php
  18. 获取微信用户openid
  19. oracle数据库之数据插入、修改和删除
  20. springmvc基础篇—掌握三种控制器

热门文章

  1. 查看SQLSERVER当前正在运行的sql信息
  2. c++开源爬虫-Larbin简单介绍
  3. Windows改动cmd字符集
  4. Codeforces Round #337 (Div. 2) 610C Harmony Analysis(脑洞)
  5. html5的代码验证
  6. Ubuntu 13.04/CentOS 6.4 下C++开发时的相关设置
  7. Entity Framework之Code First开发方式
  8. datatable设置成中文
  9. Linux下搭建iSCSI共享存储详细步骤(服务器模拟IPSAN存储)
  10. IDEA下——Spring入门程序