Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including json-stringify with all npm packages installed. Try it out:

var jsonStringify = require("json-stringify")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

json-stringify v1.0.0

Enhanced JSON.stringify

json-stringify NPM version Build Status Dependency Status

Like JSON.stringify, but enhanced, supports:

  • offset for better typo when substituting the stringified json string.
  • handle circular object, and doesn't blow up on circular refs.

Install

$ npm install json-stringify --save

Usage

var stringify = require('json-stringify');
var array = [1, '2'];

stringify(array, null, 2, {
  offset: 4
});

You will get

[
------1,
------"2"
----]

We might encounter

So, if we have an template

{
  "foo": <bar>,
  "foo2": <bar2>
}

And there's an object obj

var bar = stringify({
  bee: 'boo'
}, null, 2, {
  offset: 2
});

var bar2 = JSON.stringify({
  bee: 'boo'
}, null, 2);

var obj = {
  bar: bar,
  bar2: bar2
};

And the renderered result is:

{
  "foo": {
    "bee": "boo" // well formatted
  },
  "foo2": {
  "bee": "boo" // a little ugly
}
}

You must found the difference.

Circular Object

var circular = {};
circular.circular = circular;

var stringify = require('json-stringify');
console.log(stringify(circular, null, 2));

output:

{
  "circular": "[Circular ~]"
}

stringify(obj, replacer, indent, [options])

The first three arguments are the same as to JSON.stringify.

  • options.offset defines the offset which described above
  • options.decycler the decycler method of json-stringify-safe

The default decycler function returns the string '[Circular]'. If, for example, you pass in function(k,v){} (return nothing) then it will prune cycles. If you pass in function(k,v){ return {foo: 'bar'}}, then cyclical objects will always be represented as {"foo":"bar"} in the result.

Licence

MIT

Metadata

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free