node:json与csv互转
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!");
});
[
{
"car": "Audi",
"price": 40000,
"color": "blue",
"for": ""
}, {
"car": "BMW",
"price": 35000,
"color": "black",
"for": ""
}, {
"car": "Porsche",
"price": 60000,
"color": "green",
"for": ""
}
]
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截图
优化:
【目录下多个文件转化】

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!");
}); });
});
});
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互转的更多相关文章
- json对象字符串互转
json对象字符串互转 1.Node.js中 JSON.parse(jsonstr); //可以将json字符串转换成json对象 JSON.stringify(jsonobj); //可以将json ...
- [No00009A]JsonToObject json与类互转
using System.Web.Script.Serialization; /// <summary> /// 内部类,保存jsonData /// </summary> p ...
- ActiveReports 报表控件V12新特性 -- 新增JSON和CSV导出
ActiveReports是一款专注于 .NET 平台的报表控件,全面满足 HTML5 / WinForms / ASP.NET / ASP.NET MVC / WPF 等平台下报表设计和开发工作需求 ...
- tablib把数据导出为Excel、JSON、CSV等格式的Py库(写入数据并导出exl)
#tablib把数据导出为Excel.JSON.CSV等格式的Py库 #python 3 import tablib #定义列标题 headers = ('1列', '2列', '3列', '4列', ...
- python将json转csv
现有一个需求要将json转成excel,使用python将其转为csv格式,使用excel打开即可. import json import csv import codecs f = open('te ...
- JavaScript json和字符串互转
JavaScript内置json和字符串互转的函数JSON,不需要引入外部组件 JSON.stringify(obj)将JSON转为字符串. JSON.parse(string)将字符串转为JSON格 ...
- solr6.6 导入 文本(txt/json/xml/csv)文件
参照:solr6.6 导入 pdf文件 重点就是三个配置文件 1.建立的data-config.xml 内容如下: <dataConfig> <dataSource name=&qu ...
- 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 ...
- 最简单的JS实现json转csv
工作久了,总会遇到各种各样的数据处理工作,比如同步数据,初始化一些数据,目前比较流行的交互数据格式就是JSON,可是服务器中得到的JSON数据如果提供给业务人员看的话可能会非常不方便,这时候,转成CS ...
随机推荐
- android-继承BaseAdapter--自己定义适配器,getView运行多次的解决方法
定义的getView运行多次的ListView布局: <ListView android:id="@+id/lv_messages" android:layout_width ...
- HDU 3555 Bomb(数位DP模板啊两种形式)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3555 Problem Description The counter-terrorists found ...
- 两天学会DirectX 3D之入门
环境配置以及背景知识 环境 Windows 8.1 64bit VS2013 Microsoft DirectX SDK (June 2010) NVDIA Geforce GT755 环境的配置參考 ...
- vue29-vue2.0组件通信_recv
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- BZOJ 1050 枚举+并查集
思路: 枚举最大边 像Kruskal一样加边 每回更新一下 就搞定了- //By SiriusRen #include <cstdio> #include <cstring> ...
- excel2007去掉方括号及里面的
获取括号外面的 b2=LEFT(A1,FIND("[",A1)-1) 获取括号里面的 =MID(A2,FIND("(",A2)+1,(FIND(")& ...
- sql中使用正则查询
- OpenGL常见错误之——glut.h文件的函数无法正常连接
glut.h文件的函数无法正常连接,典型的错误如下:------ 已启动生成: 项目: gears, 配置: Debug Win32 ------1>正在链接...1>GEARS.obj ...
- Firefox 浏览器添加Linux jre插件
在安装 Java 平台时,Java 插件文件将作为该安装的一部分包含在内.要在 Firefox 中使用 Java,您需要从该发行版中的插件文件手动创建符号链接指向 Firefox 预期的其中一个位置. ...
- Vuejs2.0构建一个彩票查询WebAPP(3)
整个工程的目录及截图如下,源码下载 使用心得: 1.了解Vue的生命周期很有必要,详情参见博文Vue2.0 探索之路——生命周期和钩子函数的一些理解 2.Vuex全局状态管理真是美味不可言 st ...