|
|
- # 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.
|