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