npm install json-stringifyLike 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.
``bash`
$ npm install json-stringify --save
`js
var stringify = require('json-stringify');
var array = [1, '2'];
stringify(array, null, 2, {
offset: 4
});
`
You will get
`json`
[
------1,
------"2"
----]
#### We might encounter
So, if we have an template
``
{
"foo":
"foo2":
}
And there's an object obj
`js
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:
`js`
{
"foo": {
"bee": "boo" // well formatted
},
"foo2": {
"bee": "boo" // a little ugly
}
}
You must found the difference.
#### Circular Object
`js
var circular = {};
circular.circular = circular;
var stringify = require('json-stringify');
console.log(stringify(circular, null, 2));
`
output:
``
{
"circular": "[Circular ~]"
}
The first three arguments are the same as to JSON.stringify.
- options.offset defines the offset which described aboveoptions.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.
MIT