333
schangxiang@126.com
2025-09-19 18966e02fb573c7e2bb0c6426ed792b38b910940
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# 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.