Write json file npm

Easily read/write JSON files in Node.js. Note: this module cannot be used in the browser.

Write json file npm
Write json file npm
Write json file npm

Write json file npm

Why?

Writing JSON.stringify() and then fs.writeFile() and JSON.parse() with fs.readFile() enclosed in try/catch blocks became annoying.

Installation

npm install --save jsonfile

API


readFile(filename, [options], callback)

options (object, default undefined): Pass in any fs.readFile options or set reviver for a JSON reviver.

  • throws (boolean, default: true). If JSON.parse throws an error, pass this error to the callback. If false, returns null for the object.

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.

  • throws (boolean, default: true). If an error is encountered reading or parsing the file, throw the error. If false, returns null for the object.

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