A Node.js module for reading/modifying/writing JSON files
JavaScript
Latest commit 1b28e0c Dec 19, 2013 @kbjr kbjr typo
Permalink
Failed to load latest commit information.
lib typo Dec 19, 2013
package.json Modified write and writeSync to accept replacer and space argument (j… Nov 25, 2013
readme.md first build Aug 28, 2012

readme.md

json-file

A Node.js module for reading/modifying/writing JSON files.

Install

$ npm install json-file

Usage

var json = require('json-file');

// Load a JSON file
var file = json.read('./package.json');

// Read and write some values
file.get('version');  // eg. "1.0.0"
file.get('repository.type');  // eg. "git"
file.set('description', 'Some new description');

// The raw data
console.log(file.data);

// Write the updates to the file
file.writeSync();

API

json.read ( String filePath[, Function callback ])

A shortcut for creating a json.File object and loading the file contents.

// This...
var file = json.read('/a/b/c');

// Is equivilent to this...
var file = new json.File('/a/b/c');
file.readSync();

// Likewise, this...
var file = json.read('/a/b/c', function() {
    // ...
});

// Is equivilent to this...
var file = new json.File('/a/b/c');
file.read(function() {
    // ...
});

json.File ( String filePath )

JSON File object constructor. Takes a path to a JSON file.

var file = new json.File('/path/to/file.json');

File::read ( Function callback )

Reads the JSON file and parses the contents.

file.read(function() {
    //
    // Now you can do things like use the .get() and .set() methods
    //
});

File::readSync ( void )

Reads the JSON file and parses the contents synchronously.

File::write ( Function callback )

Write the new contents back to the file.

file.write(function() {
    //
    // Your JSON file has been updated
    //
});

File::writeSync ( void )

Write the new contents back to the file synchronously.

File::get ( Mixed key )

Get a value from the JSON data.

file.get('foo'); // === file.data['foo']
file.get('foo.bar.baz'); // === file.data['foo']['bar']['baz']

File::set ( Mixed key, Mixed value )

Set a value in the JSON data.

file.set('foo', 'bar');
file.set('a.b.c', 'baz');

The set method returns the file object itself, so this method can be chained.

file.set('a', 'foo')
    .set('b', 'bar')
    .set('c', 'baz');