【单个文件的转化】
 
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!");
});
})
});
});

node:json与csv互转的更多相关文章

  1. json对象字符串互转

    json对象字符串互转 1.Node.js中 JSON.parse(jsonstr); //可以将json字符串转换成json对象 JSON.stringify(jsonobj); //可以将json ...

  2. [No00009A]JsonToObject json与类互转

    using System.Web.Script.Serialization; /// <summary> /// 内部类,保存jsonData /// </summary> p ...

  3. ActiveReports 报表控件V12新特性 -- 新增JSON和CSV导出

    ActiveReports是一款专注于 .NET 平台的报表控件,全面满足 HTML5 / WinForms / ASP.NET / ASP.NET MVC / WPF 等平台下报表设计和开发工作需求 ...

  4. tablib把数据导出为Excel、JSON、CSV等格式的Py库(写入数据并导出exl)

    #tablib把数据导出为Excel.JSON.CSV等格式的Py库 #python 3 import tablib #定义列标题 headers = ('1列', '2列', '3列', '4列', ...

  5. python将json转csv

    现有一个需求要将json转成excel,使用python将其转为csv格式,使用excel打开即可. import json import csv import codecs f = open('te ...

  6. JavaScript json和字符串互转

    JavaScript内置json和字符串互转的函数JSON,不需要引入外部组件 JSON.stringify(obj)将JSON转为字符串. JSON.parse(string)将字符串转为JSON格 ...

  7. solr6.6 导入 文本(txt/json/xml/csv)文件

    参照:solr6.6 导入 pdf文件 重点就是三个配置文件 1.建立的data-config.xml 内容如下: <dataConfig> <dataSource name=&qu ...

  8. solr File Upload "Unsupported ContentType: application/vnd.ms-excel Not in: [application/xml, application/csv, application/json, text/json, text/csv, text/xml, application/javabin]",

    今天在用solr管理界面导入文件时报错:"Unsupported ContentType: application/vnd.ms-excel  Not in: [application/xm ...

  9. 最简单的JS实现json转csv

    工作久了,总会遇到各种各样的数据处理工作,比如同步数据,初始化一些数据,目前比较流行的交互数据格式就是JSON,可是服务器中得到的JSON数据如果提供给业务人员看的话可能会非常不方便,这时候,转成CS ...

随机推荐

  1. Android带索引联系人列表

    网上Android联系人列表的样例也非常多,都和微信的联系人差点儿相同,因为项目用到了联系人列表索引功能(产品把字母item给去掉了),只是也还是好实现.这里我也来分享分享我的实现,免得以后忘了.那先 ...

  2. Android——bootchart

    bootchart:android原生自带的开机性能查看机制.通过收集android开机过程中的各种log数据,终于能够图表的形式展现各个进程在开机过程中的性能.(博客不能断-) 撰写不易,转载需注明 ...

  3. C语言之基本算法26—佩尔方程求解

    //穷举法! /* ====================================================== 题目:求佩尔方程x*x-73*y*y=1的解. =========== ...

  4. ssh 免密及加密远程脚本实现

    windows_host文件路径:C:\Windows\System32\drivers\etc ssh-copy-id -i ~/.ssh/id-rsa.pub root@xxxxxxx 免密验证操 ...

  5. JS的解析与执行过程—函数预处理

    声明:之所以分为全局预处理与函数预处理,只是为了理解方便,其实在实际运行中二者是不分先后的. 函数预处理阶段与全局预处理的差别: 函数每调用一次,就会产生一个LexicalEnviroment对象,在 ...

  6. BZOJ3130: [Sdoi2013]费用流(二分,最大流)

    Description Alice和Bob在图论课程上学习了最大流和最小费用最大流的相关知识.    最大流问题:给定一张有向图表示运输网络,一个源点S和一个汇点T,每条边都有最大流量.一个合法的网络 ...

  7. Tensorflow 函数学习笔记

    A: A:## tf.argmax(A, axis).eval() 输出axis维度上最大的数的索引 axis=0:列,axis=1:行 A:## tf.add(a,b)  创建a+b的计算图 A:# ...

  8. 学习参考《矩阵分析与应用(第二版)张贤达》PDF

    要想深入理解机器学习,或者对人工智能的某个领域有所研究,都必须掌握矩阵及其应用. 学习<矩阵分析与应用第2版>时,会发现总结了大量线性代数的知识,主要是给工科生用的.归纳了不少论文中的解法 ...

  9. LRJ入门经典-0903切蛋糕305

    原题 LRJ入门经典-0903切蛋糕305 难度级别:B: 运行时间限制:1000ms: 运行空间限制:256000KB: 代码长度限制:2000000B 试题描述 如图所示有一个矩形蛋糕,上面划分成 ...

  10. 【hiho39】二分·归并排序之逆序对

    近期申请了微软的暑假实习,4号就要在线笔试了,在线測试系统用的是http://hihocoder.com/,今天试手做了一道题. [题目] 原题链接:http://hihocoder.com/cont ...