You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							53 lines
						
					
					
						
							1.2 KiB
						
					
					
				
			
		
		
	
	
							53 lines
						
					
					
						
							1.2 KiB
						
					
					
				| # 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.
 |