使用nodejs解析json數(shù)據(jù)
nodejs解析json數(shù)據(jù)
nodejs是服務(wù)器端的javascript的處理平臺(tái)。json(JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式。我們?cè)趯懛?wù)端的程序時(shí)往往需要使用json來處理數(shù)據(jù)。
這里我們用一個(gè)簡(jiǎn)單的例子來演示如何用nodejs來處理json數(shù)據(jù)文件。
第一
我們需要在ubuntu14.04上安裝nodejs,我們可以使用如下命令:
$ sudo apt-get install nodejs
安裝完畢, 我們可以使用如下命令進(jìn)行測(cè)試:
$ nodejs -v v0.10.25
第二
準(zhǔn)備一個(gè)測(cè)試json文件, test.json,內(nèi)容如下:
{
? "person": {
? ? "name": "wanger",
? ? "birth": "1999"
? }
}第三
創(chuàng)建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);
? ? ? ? });
})();第四
測(cè)試和運(yùn)行
$ ./main.js test.json wanger 1999
node.js解析本地json
具體操作:
從文件讀取json并且解析字符串為json對(duì)象
從文件讀取json
node.js中的文件操作基本都是在fs模塊中,這里用的是同步讀取文件,讀出來是個(gè)字符串。
const fs ? ?= require('fs');
var jsonfile = fs.readFileSync(__dirname+"/test.json", "utf8");
console.log(jsonfile);其中require(‘fs’): 導(dǎo)入fs模塊
readFileSync(“文件路徑”,“編碼格式”)
注:使用的是同步的方式讀取的文件
解析json字符串為json對(duì)象
jsonplust是解析json的一個(gè)開源庫使用非常簡(jiǎn)單。
安裝:
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’)導(dǎo)入jsonplus模塊
jsonplus.parse(jsonfile)
jsonfile是剛剛從json文件中讀出來的字符串
接著就可以用json對(duì)象的方式訪問里面的數(shù)據(jù)了。
擴(kuò)展
該模塊還可以使用模板方法:
Resolve函數(shù):
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' }以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Node.js 實(shí)現(xiàn)簡(jiǎn)單的無侵入式緩存框架的方法
這篇文章主要介紹了Node.js 實(shí)現(xiàn)簡(jiǎn)單的無侵入式緩存框架的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07
推薦 21 款優(yōu)秀的高性能 Node.js 開發(fā)框架
Node.js是JavaScript中最為流行的框架之一,易于創(chuàng)建可擴(kuò)展的Web應(yīng)用。Node.js包含不同類型框架,包括MVC, full-stack,REST API以及Generators。借助這些框架使Node.js更加易于使用,它還支持眾多特性功能,只需幾個(gè)步驟就可快速搭建強(qiáng)大的Web應(yīng)用。本文為大家推薦21款2014-08-08
node如何實(shí)現(xiàn)簡(jiǎn)單的腳手架淺析
在工作中,需要開發(fā)一個(gè)腳手架,用于給相關(guān)用戶提供相關(guān)的開發(fā)便利性,下面這篇文章主要給大家介紹了關(guān)于node如何實(shí)現(xiàn)簡(jiǎn)單的腳手架的相關(guān)資料,需要的朋友可以參考下2022-05-05
詳解前端任務(wù)構(gòu)建利器Gulp.js使用指南
這篇文章主要介紹了前端任務(wù)構(gòu)建利器Gulp.js使用指南,對(duì)Gulp.js感興趣的同學(xué),可以參考下2021-04-04
node+koa+canvas繪制出貨單、收據(jù)票據(jù)的方法
在生成票據(jù)需求中,我們會(huì)想到前端生成或者后端生成返回圖片地址訪問兩個(gè)方法,前端生成則不需要調(diào)用接口,而后端是在完成整個(gè)流程時(shí)就進(jìn)行生成然后把上傳的地址保存數(shù)據(jù)庫,這篇文章主要介紹了node+koa+canvas繪制出貨單,收據(jù),票據(jù),需要的朋友可以參考下2022-09-09

