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

 更新时间:2022年10月21日 15:05:24   作者:@胡海龙  
这篇文章主要介绍了Nodejs处理Json文件并将处理后的数据写入新文件中,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

处理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;
    }
});

用Nodejs解析json数据

nodejs是服务器端的javascript的处理平台。json(JavaScript Object Notation) 是一种轻量级的数据交换格式。我们在写服务端的程序时往往需要使用json来处理数据。

这里我们用一个简单的例子来演示如何用nodejs来处理json数据文件。

第一,我们需要在ubuntu14.04上安装nodejs,我们可以使用如下命令:

$ sudo apt-get install nodejs

安装完毕, 我们可以使用如下命令进行测试:

$ nodejs -v
v0.10.25

第二,准备一个测试json文件, test.json,内容如下:

{
  "person": {
    "name": "wanger",
    "birth": "1999"
  }
}

第三,创建js脚本来解析json文件,main.js

#!/usr/bin/nodejs
var cwd = process.argv[1].substring(0, process.argv[1].lastIndexOf("/"));
var fs = require('fs');
 
function load(file, cb) {
        fs.readFile(file, function(err, data) {
                if (err)
                        throw err;
                cb(JSON.parse(data.toString()));
        });
}
 
(function() {
        if (process.argv.length < 2) {
                console.log("usage\n\t" + process.argv[1] + " loadfile");
                return;
        }
        load(process.argv[2], function(obj) {
                console.log("%s\n", obj.person.name);
                console.log("%s\n", obj.person.birth);
        });
})();

第四,测试和运行

$ ./main.js test.json
wanger
1999

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • NodeJS实现视频转码的示例代码

    NodeJS实现视频转码的示例代码

    本篇文章主要介绍了NodeJS实现视频转码的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • Node.js文件操作方法汇总

    Node.js文件操作方法汇总

    本文给大家汇总了node.js实现文件操作的方法,非常的细致全面,希望大家能够喜欢
    2016-03-03
  • npm 下载指定版本的组件方法

    npm 下载指定版本的组件方法

    今天小编就为大家分享一篇npm 下载指定版本的组件方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • node.js中的fs.rmdir方法使用说明

    node.js中的fs.rmdir方法使用说明

    这篇文章主要介绍了node.js中的fs.rmdir方法使用说明,本文介绍了fs.rmdir方法说明、语法、接收参数、使用实例和实现源码,需要的朋友可以参考下
    2014-12-12
  • 详解NODEJS基于FFMPEG视频推流测试

    详解NODEJS基于FFMPEG视频推流测试

    本篇文章主要介绍了详解NODEJS基于FFMPEG视频推流测试,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • nodejs递归文件夹获取所有文件路径实例

    nodejs递归文件夹获取所有文件路径实例

    这篇文章主要为大家介绍了nodejs递归文件夹获取所有文件路径实例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • 切换node版本的实现方式

    切换node版本的实现方式

    由于有些比较老的系统,使用的node版本较低,本机装的node版本又比较高,不想降node版本,那么就需要考虑能不能在系统里管理多个node版本,本文主要介绍了切换node版本,感兴趣的可以了解一下
    2024-04-04
  • node搭建后台的实现步骤

    node搭建后台的实现步骤

    本文介绍了使用Node.js搭建后台的实现步骤,文章详细阐述了每个步骤的实现过程,并给出了示例代码,对于想要了解如何使用Node.js搭建后台的读者具有一定的参考价值
    2023-08-08
  • 一文详解Node中的文件模块与核心模块

    一文详解Node中的文件模块与核心模块

    这篇文章主要介绍了一文详解Node 中文件模块与核心模块,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-07-07
  • 解决Linux无法正常安装与卸载Node.js的方法

    解决Linux无法正常安装与卸载Node.js的方法

    最近在学习node.js,所以下面这篇文章主要给大家介绍了关于如何解决Linux无法正常安装与卸载Node.js的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧。
    2018-01-01

最新评论