/lighter-json

A lightweight JSON utility library.

Primary LanguageJavaScriptMIT LicenseMIT

lighter-json

Chat Version Downloads Build Coverage Style

The lighter-json module is a lightweight JavaScript Object Notation utility.

Quick Start

From your project directory, install and save as a dependency:

npm install --save lighter-json

Then use lighter-json in place of the global JSON object for circular reference safety and more.

var JSON = require('lighter-json')

// Create a circular reference, if you like.
var object = {}
object.reference = object

// It's OK, you're safe.
var json = JSON.stringify(object)
console.log(json)

//> {"reference":"[Circular 1]"}

API

The lighter-json package exports an object with several methods for dealing with JSON and non-strict JSON. It also populates same-name methods onto the global JSON object, apart from its stringify method, which is populated as JSON.safeStringify.

lighterJson.stringify(value[, replacer[, space]])

Perform a JSON stringify operation on a value, using automatic cycle detection if a replacer function is not provided.

lighterJson.parse(json)

Parse a JSON string (using the builtin JSON.parse).

lighterJson.scriptify(value)

Represent a value as non-strict JSON, complete with JS code for re-constructing Date, Error, Function and RegExp values.

lighterJson.evaluate(js)

Evaluate and return a value from a JavaScript string representation. This supports non-strict JSON, so a value (or a deep property) can be a Date, a Function, an Error or a RegExp.

lighterJson.reader(readableStream)

Listen to a readable stream that's not in object mode, and interpret its lines as JavaScript values (using lighterJson.evaluate).

lighterJson.unreader(readableStream)

Stop listening for values on a readable stream.

lighterJson.writer(writableStream)

Replace the stream's write method with one that accepts objects and writes non-strict JSON.

lighterJson.unwriter(writableStream)

Puts a writable stream's write method back.

lighterJson.colorize(value)

Evaluate and return a value from a JavaScript string representation. This supports non-strict JSON, so a value (or a deep property) can be a Date, a Function, an Error or a RegExp.

More on lighter-json...