使用nodejs解析json數(shù)據(jù)
nodejs解析json數(shù)據(jù)
nodejs是服務(wù)器端的javascript的處理平臺。json(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式。我們在寫服務(wù)端的程序時往往需要使用json來處理數(shù)據(jù)。
這里我們用一個簡單的例子來演示如何用nodejs來處理json數(shù)據(jù)文件。
第一
我們需要在ubuntu14.04上安裝nodejs,我們可以使用如下命令:
$ sudo apt-get install nodejs
安裝完畢, 我們可以使用如下命令進行測試:
$ nodejs -v v0.10.25
第二
準(zhǔn)備一個測試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); ? ? ? ? }); })();
第四
測試和運行
$ ./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’): 導(dǎo)入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’)導(dǎo)入jsonplus模塊
jsonplus.parse(jsonfile)
jsonfile是剛剛從json文件中讀出來的字符串
接著就可以用json對象的方式訪問里面的數(shù)據(jù)了。
擴展
該模塊還可以使用模板方法:
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' }
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Node.js高級編程cluster環(huán)境及源碼調(diào)試詳解
這篇文章主要為大家介紹了Node.js高級編程cluster環(huán)境及源碼調(diào)試詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-12-12Node.js如何快速導(dǎo)出多表頭的excel文件實現(xiàn)方法
這篇文章主要為大家介紹了Node.js如何快速導(dǎo)出多表頭的excel文件實現(xiàn)方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-06-06如何在node.js中使用?JsonWebToken模塊進行token加密
目前在web框架中最流行的身份驗證是使用jsonwebtoken,簡稱jwt.可以設(shè)置加密方式,過期時間,存放個人信息,逆解析,下面這篇文章主要給大家介紹了關(guān)于如何在node.js中使用?JsonWebToken模塊進行token加密的相關(guān)資料,需要的朋友可以參考下2023-03-03關(guān)于node.js版本npm -v報錯問題的解決方法
最近工作中遇到了些問題,這里總結(jié)下,下面這篇文章主要給大家介紹了關(guān)于node.js版本npm -v報錯問題的解決方法,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04