README.md (1261B)
1 # json-stringify-safe 2 3 Like JSON.stringify, but doesn't throw on circular references. 4 5 ## Usage 6 7 Takes the same arguments as `JSON.stringify`. 8 9 ```javascript 10 var stringify = require('json-stringify-safe'); 11 var circularObj = {}; 12 circularObj.circularRef = circularObj; 13 circularObj.list = [ circularObj, circularObj ]; 14 console.log(stringify(circularObj, null, 2)); 15 ``` 16 17 Output: 18 19 ```json 20 { 21 "circularRef": "[Circular]", 22 "list": [ 23 "[Circular]", 24 "[Circular]" 25 ] 26 } 27 ``` 28 29 ## Details 30 31 ``` 32 stringify(obj, serializer, indent, decycler) 33 ``` 34 35 The first three arguments are the same as to JSON.stringify. The last 36 is an argument that's only used when the object has been seen already. 37 38 The default `decycler` function returns the string `'[Circular]'`. 39 If, for example, you pass in `function(k,v){}` (return nothing) then it 40 will prune cycles. If you pass in `function(k,v){ return {foo: 'bar'}}`, 41 then cyclical objects will always be represented as `{"foo":"bar"}` in 42 the result. 43 44 ``` 45 stringify.getSerialize(serializer, decycler) 46 ``` 47 48 Returns a serializer that can be used elsewhere. This is the actual 49 function that's passed to JSON.stringify. 50 51 **Note** that the function returned from `getSerialize` is stateful for now, so 52 do **not** use it more than once.