在nodeJs中如何修改json文件中的數(shù)據(jù)
更新時間:2022年10月21日 16:55:05 作者:前端需要死磕
這篇文章主要介紹了在nodeJs中如何修改json文件中的數(shù)據(jù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
nodeJs修改json文件中的數(shù)據(jù)
// 注意,在內(nèi)部讀取文件不能訪問 json 文件中的屬性,不知道為什么,所以在外部讀取文件 const detailArr = require('./data/Details_shoplist_info.json'); app.get('/api/modify_details_info',function (req, res) { // 獲取 GET 的請求數(shù)據(jù) let item = req.query.item; let param = req.query.param; // 操作對象中的屬性 detailArr.message[0][item] = param; // 將文件轉(zhuǎn)為 JSON 字符串 let result = JSON.stringify(detailArr); // 將修改后的對象存回 json 文件中 fs.writeFile("./data/Details_shoplist_info.json",result,"utf8",function (err, data1) { if(err){ console.error(err); } else{ console.log("點贊成功!"); res.send(JSON.stringify(data1)); } }) })
node.js批量處理json文件
處理一批數(shù)據(jù)(一堆json文件),要求如下:
// 原始數(shù)據(jù) { ?? ?v: { ?? ??? ?code: xxx, // 此屬性可能存在,可能不存在 ?? ??? ?a: xxx, ?? ??? ?b: xxx, ?? ??? ?c: xxx ?? ?} } // 處理后 { ?? ?code: 文件名 ?? ?a: xxx, ?? ?b: xxx, ?? ?c: xxx }
心理活動
如果一條一條改的話,額。。。好無聊,剛剛可以批處理修改文件名,那能不能通過 node 批量處理一下內(nèi)容呢?百度一下,node 讀文件、寫文件,OK,開干
實操
var fs = require('fs');//引用文件系統(tǒng)模塊 const path = require('path'); function readFileList(path, filesList) { ? ? var files = fs.readdirSync(path); ? ? files.forEach(function (itm, index) { ? ? ? ? var stat = fs.statSync(path + itm); ? ? ? ? if (stat.isDirectory()) { ? ? ? ? ? ? //遞歸讀取文件 ? ? ? ? ? ? readFileList(path + itm + "/", filesList) ? ? ? ? } else { ? ? ? ? ? ? var obj = {};//定義一個對象存放文件的路徑和名字 ? ? ? ? ? ? obj.path = path;//路徑 ? ? ? ? ? ? obj.filename = itm//名字 ? ? ? ? ? ? filesList.push(obj); ? ? ? ? } ? ? }) } var getFiles = { ? ? //獲取文件夾下的所有文件 ? ? getFileList: function (path) { ? ? ? ? var filesList = []; ? ? ? ? readFileList(path, filesList); ? ? ? ? return filesList; ? ? }, }; //獲取文件夾下的所有文件 let fileLists = getFiles.getFileList('./'); fileLists.forEach(item => { ? ? if (path.extname(item.filename) === '.json') { ? ? ? ? fs.readFile(path.join(__dirname, `./${item.filename}`), 'utf8', function (err, data) { ? ? ? ? ? ? if (err) throw err; ? ? ? ? ? ? let list = JSON.parse(data); ? ? ? ? ? ? const keys = Object.keys(list); ? ? ? ? ? ? const filename = item.filename.replace(path.extname(item.filename), ''); ? ? ? ? ? ? let target = { code: filename }; ? ? ? ? ? ? let newData = Object.assign(target, list[keys]); ? ? ? ? ? ? newData.code = filename; ? ? ? ? ? ? // 將內(nèi)容寫入文件 ? ? ? ? ? ? fs.writeFile(`./${item.filename}`, JSON.stringify(newData), 'utf8', (err) => { ? ? ? ? ? ? ? ? if (err) throw err; ? ? ? ? ? ? ? ? console.log('success done'); ? ? ? ? ? ? }); ? ? ? ? }) ? ? } })
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
利用node+koa+axios實現(xiàn)圖片上傳和回顯功能
這篇文章為大家詳細介紹了如何利用node+koa+axios實現(xiàn)圖片上傳和回顯功能,主要實現(xiàn)簡單的圖片上傳和靜態(tài)內(nèi)容的訪問,感興趣的可以了解一下2022-05-05使用express+multer實現(xiàn)node中的圖片上傳功能
這篇文章主要介紹了使用express+multer實現(xiàn)node中的圖片上傳功能,需要的朋友可以參考下2018-02-02node.js使用npm 安裝插件時提示install Error: ENOENT報錯的解決方法
這篇文章主要介紹了node.js使用npm 安裝插件時提示install Error: ENOENT報錯的解決方法,需要的朋友可以參考下2014-11-11node.js 中間件express-session使用詳解
這篇文章主要給大家介紹了node.js中間件express-session使用的相關(guān)資料,文中介紹的非常詳細,對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2017-05-05