Nodejs处理Json文件并将处理后的数据写入新文件

问题描述

事情是这样的,朋友让我处理一个json文件并将处理后的数据写入新文件。这个json文件的结构如下:

[
	{ 
        "head_img": "http://wx.qlogo.cn/mmhead/xxxxxxxxxxx",
        "nick_name": "xxxxxxx",
        "user_name": "",
        "wxid": "wxid_xxxxxxxxxxxx"
    },
    ...
]

这个json文件中的这个json数组大小是25w条数据,现在他只想要wxid这个属性的值,并且将它写出到一个txt的文件中,没5000个为一个txt文件,每个值为一行。也就是最后给他50个txt文件,每个里面有5000行wxid的值。

实现过程

解决问题的方法有很多,可以用python、nodejs、Java等任何你熟悉的语言实现,我这里使用nodejs来实现一下,因为它简单并且不需要引入第三方的库。
这里涉及到了文件的读取和写入,因此用到nodejs自带的fs模块。具体实现代码如下:

const fs = require("fs")	//引入fs模块

const data = fs.readFileSync('test.json','utf8');	//读取json文件
let temp = JSON.parse(data)	//将数据解析为json对象

let tempIndex = 0;	//临时索引,用来计数是否到达5000条
let tempFileCount = 1	//临时文件计数,用于计数文件名,result1...result50
temp.forEach(element => { 	//遍历json数组
    if(tempIndex<5000){ 	//判断是否小于5000,如果是则写入当前文件,这里使用的是追加的写入方式
        fs.appendFileSync("result"+tempFileCount+".txt",element.wxid+'\r','utf8',function(err){ },tempIndex++)
        
    }else{ 	//当tempIndex等于5000时写入新的文件,并且将文件名计数加一
        console.log("create new file")
        tempFileCount++;
        fs.appendFileSync("result"+tempFileCount+".txt",element.wxid+'\r','utf8',function(err){ },console.log(tempFileCount+': 开始写入'))
        tempIndex = 0;
    }
});
    原文作者:@胡海龙
    原文地址: https://blog.csdn.net/hhl18730252820/article/details/124085187
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞