·  阅读
好东西,齐分享

node:json与csv互转


【单个文件的转化】

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!");
});复制代码



分类:
阅读
标签: