jsonfile
    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/jsonfile package

    6.1.0 • Public • Published

    Node.js - jsonfile

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

    npm Package build status windows Build status

    Standard JavaScript

    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.
    const jsonfile = require('jsonfile')
    const file = '/tmp/data.json'
    jsonfile.readFile(file, function (err, obj) {
      if (err) console.error(err)
      console.dir(obj)
    })

    You can also use this method with promises. The readFile method will return a promise if you do not pass a callback function.

    const jsonfile = require('jsonfile')
    const file = '/tmp/data.json'
    jsonfile.readFile(file)
      .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.
    const jsonfile = require('jsonfile')
    const file = '/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.

    const jsonfile = require('jsonfile')
     
    const file = '/tmp/data.json'
    const obj = { name: 'JP' }
     
    jsonfile.writeFile(file, obj, function (err) {
      if (err) console.error(err)
    })

    Or use with promises as follows:

    const jsonfile = require('jsonfile')
     
    const file = '/tmp/data.json'
    const obj = { name: 'JP' }
     
    jsonfile.writeFile(file, obj)
      .then(res => {
        console.log('Write complete')
      })
      .catch(error => console.error(error))

    formatting with spaces:

    const jsonfile = require('jsonfile')
     
    const file = '/tmp/data.json'
    const obj = { name: 'JP' }
     
    jsonfile.writeFile(file, obj, { spaces: 2 }, function (err) {
      if (err) console.error(err)
    })

    overriding EOL:

    const jsonfile = require('jsonfile')
     
    const file = '/tmp/data.json'
    const obj = { name: 'JP' }
     
    jsonfile.writeFile(file, obj, { spaces: 2, EOL: '\r\n' }, function (err) {
      if (err) console.error(err)
    })

    disabling the EOL at the end of file:

    const jsonfile = require('jsonfile')
     
    const file = '/tmp/data.json'
    const obj = { name: 'JP' }
     
    jsonfile.writeFile(file, obj, { spaces: 2, finalEOL: false }, function (err) {
      if (err) console.log(err)
    })

    appending to an existing JSON file:

    You can use fs.writeFile option { flag: 'a' } to achieve this.

    const jsonfile = require('jsonfile')
     
    const file = '/tmp/mayAlreadyExistedData.json'
    const obj = { name: 'JP' }
     
    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.

    const jsonfile = require('jsonfile')
     
    const file = '/tmp/data.json'
    const obj = { name: 'JP' }
     
    jsonfile.writeFileSync(file, obj)

    formatting with spaces:

    const jsonfile = require('jsonfile')
     
    const file = '/tmp/data.json'
    const obj = { name: 'JP' }
     
    jsonfile.writeFileSync(file, obj, { spaces: 2 })

    overriding EOL:

    const jsonfile = require('jsonfile')
     
    const file = '/tmp/data.json'
    const obj = { name: 'JP' }
     
    jsonfile.writeFileSync(file, obj, { spaces: 2, EOL: '\r\n' })

    disabling the EOL at the end of file:

    const jsonfile = require('jsonfile')
     
    const file = '/tmp/data.json'
    const obj = { name: 'JP' }
     
    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.

    const jsonfile = require('jsonfile')
     
    const file = '/tmp/mayAlreadyExistedData.json'
    const obj = { name: 'JP' }
     
    jsonfile.writeFileSync(file, obj, { flag: 'a' })

    License

    (MIT License)

    Copyright 2012-2016, JP Richardson jprichardson@gmail.com

    Install

    npm i jsonfile

    DownloadsWeekly Downloads

    30,640,923

    Version

    6.1.0

    License

    MIT

    Unpacked Size

    19.8 kB

    Total Files

    6

    Last publish

    Collaborators

    • avatar
    • avatar