mirror of
				https://kkgithub.com/actions/setup-python.git
				synced 2025-11-04 12:44:05 +08:00 
			
		
		
		
	
		
			
	
	
		
			53 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			53 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								# 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.
							 |