You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
# json-stringify-safe
Like JSON.stringify, but doesn't throw on circular references.
## Usage
Takes the same arguments as `JSON.stringify`.
```javascript var stringify = require('json-stringify-safe'); var circularObj = {}; circularObj.circularRef = circularObj; circularObj.list = [ circularObj, circularObj ]; console.log(stringify(circularObj, null, 2)); ```
Output:
```json { "circularRef": "[Circular]", "list": [ "[Circular]", "[Circular]" ] } ```
## Details
``` stringify(obj, serializer, indent, decycler) ```
The first three arguments are the same as to JSON.stringify. The last is an argument that's only used when the object has been seen already.
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.
``` stringify.getSerialize(serializer, decycler) ```
Returns a serializer that can be used elsewhere. This is the actual function that's passed to JSON.stringify.
**Note** that the function returned from `getSerialize` is stateful for now, so do **not** use it more than once.
|