Initial commit
[yaffs-website] / node_modules / json-stringify-safe / README.md
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.