The lighter-json
module is a lightweight JavaScript Object Notation utility.
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]"}
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
.
Perform a JSON stringify operation on a value, using automatic cycle detection if a replacer function is not provided.
Parse a JSON string (using the builtin JSON.parse
).
Represent a value as non-strict JSON, complete with JS code for re-constructing Date, Error, Function and RegExp values.
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.
Listen to a readable stream that's not in object mode, and interpret its
lines as JavaScript values (using lighterJson.evaluate
).
Stop listening for values on a readable stream.
Replace the stream's write method with one that accepts objects and writes non-strict JSON.
Puts a writable stream's write method back.
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.