好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

使用nodejs解析json数据

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

node.js解析本地json

具体操作:

从文件读取json并且解析字符串为json对象

从文件读取json

node.js中的文件操作基本都是在fs模块中,这里用的是同步读取文件,读出来是个字符串。

const fs ? ?= require('fs');
var jsonfile = fs.readFileSync(__dirname+"/test.json", "utf8");
console.log(jsonfile);

其中require(‘fs’): 导入fs模块

readFileSync([文件路径],[编码格式])

注:使用的是同步的方式读取的文件

解析json字符串为json对象

jsonplust是解析json的一个开源库使用非常简单。 

安装:

npm install --save-dev jsonplus

使用:

var jsonplus = require('jsonplus');
// Parse like you would with JSON.parse
var response = jsonplus.parse(jsonfile);
console.log(response["type"]);

其中require(‘jsonplus’)导入jsonplus模块

jsonplus.parse(jsonfile)

jsonfile是刚刚从json文件中读出来的字符串

接着就可以用json对象的方式访问里面的数据了。

扩展

该模块还可以使用模板方法:

Resolve函数:

var resolve = require('jsonplus').resolve
// This will resolve all reference strings on the given object
var object = resolve(AlreadyParsedJSON);
// resolve has a second argument, which provides the context for references
var object = resolve({ full: '{{ first }} {{ last }}' }, { first: 'john', last: 'doe' });
console.log(object) // { full: 'john doe' }

参考资料-github地址

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

查看更多关于使用nodejs解析json数据的详细内容...

  阅读:50次