Easily read/write JSON files in Node.js. Note: this module cannot be used in the browser. Show Why?Writing JSON.stringify() and then fs.writeFile() and JSON.parse() with fs.readFile() enclosed in try/catch blocks became annoying. Installationnpm install --save jsonfileAPIreadFile(filename, [options], callback)options (object, default undefined): Pass in any fs.readFile options or set reviver for a JSON reviver.
constjsonfile=require('jsonfile') constfile='/tmp/data.json' jsonfile.readFile(file,function(err,obj){ if(err)console.error(err) You can also use this method with promises. The readFile method will return a promise if you do not pass a callback function. constjsonfile=require('jsonfile') constfile='/tmp/data.json' .then(obj=>console.dir(obj)) .catch(error=>console.error(error)) readFileSync(filename, [options])options (object, default undefined): Pass in any fs.readFileSync options or set reviver for a JSON reviver.
constjsonfile=require('jsonfile') constfile='/tmp/data.json' console.dir(jsonfile.readFileSync(file)) writeFile(filename, obj, [options], callback)options: Pass in any fs.writeFile options or set replacer for a JSON replacer. Can also pass in spaces, or override EOL string or set finalEOL flag as false to not save the file with EOL at the end. constjsonfile=require('jsonfile') constfile='/tmp/data.json' jsonfile.writeFile(file,obj,function(err){ if(err)console.error(err) Or use with promises as follows: constjsonfile=require('jsonfile') constfile='/tmp/data.json' jsonfile.writeFile(file,obj) console.log('Writecomplete') .catch(error=>console.error(error)) formatting with spaces: constjsonfile=require('jsonfile') constfile='/tmp/data.json' jsonfile.writeFile(file,obj,{spaces:2},function(err){ if(err)console.error(err) overriding EOL: constjsonfile=require('jsonfile') constfile='/tmp/data.json' jsonfile.writeFile(file,obj,{spaces:2,EOL:'\r\n'},function(err){ if(err)console.error(err) disabling the EOL at the end of file: constjsonfile=require('jsonfile') constfile='/tmp/data.json' jsonfile.writeFile(file,obj,{spaces:2,finalEOL:false},function(err){ appending to an existing JSON file: You can use fs.writeFile option { flag: 'a' } to achieve this. constjsonfile=require('jsonfile') constfile='/tmp/mayAlreadyExistedData.json' jsonfile.writeFile(file,obj,{flag:'a'},function(err){ if(err)console.error(err) writeFileSync(filename, obj, [options])options: Pass in any fs.writeFileSync options or set replacer for a JSON replacer. Can also pass in spaces, or override EOL string or set finalEOL flag as false to not save the file with EOL at the end. constjsonfile=require('jsonfile') constfile='/tmp/data.json' jsonfile.writeFileSync(file,obj) formatting with spaces: constjsonfile=require('jsonfile') constfile='/tmp/data.json' jsonfile.writeFileSync(file,obj,{spaces:2}) overriding EOL: constjsonfile=require('jsonfile') constfile='/tmp/data.json' jsonfile.writeFileSync(file,obj,{spaces:2,EOL:'\r\n'}) disabling the EOL at the end of file: constjsonfile=require('jsonfile') constfile='/tmp/data.json' jsonfile.writeFileSync(file,obj,{spaces:2,finalEOL:false}) appending to an existing JSON file: You can use fs.writeFileSync option { flag: 'a' } to achieve this. constjsonfile=require('jsonfile') constfile='/tmp/mayAlreadyExistedData.json' jsonfile.writeFileSync(file,obj,{flag:'a'}) License(MIT License) Copyright 2012-2016, JP Richardson |