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.
		
		
		
		
		
			
		
			
				
					46 lines
				
				1.2 KiB
			
		
		
			
		
	
	
					46 lines
				
				1.2 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								# JSON Pointer for Node.js
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								This is an implementation of [JSON Pointer](https://tools.ietf.org/html/rfc6901).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## CLI
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Looking to filter JSON from the command line? Check out [jsonpointer-cli](https://github.com/joeyespo/jsonpointer-cli).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Usage
							 | 
						||
| 
								 | 
							
								```javascript
							 | 
						||
| 
								 | 
							
								var jsonpointer = require('jsonpointer');
							 | 
						||
| 
								 | 
							
								var obj = { foo: 1, bar: { baz: 2}, qux: [3, 4, 5]};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								jsonpointer.get(obj, '/foo');     // returns 1
							 | 
						||
| 
								 | 
							
								jsonpointer.get(obj, '/bar/baz'); // returns 2
							 | 
						||
| 
								 | 
							
								jsonpointer.get(obj, '/qux/0');   // returns 3
							 | 
						||
| 
								 | 
							
								jsonpointer.get(obj, '/qux/1');   // returns 4
							 | 
						||
| 
								 | 
							
								jsonpointer.get(obj, '/qux/2');   // returns 5
							 | 
						||
| 
								 | 
							
								jsonpointer.get(obj, '/quo');     // returns undefined
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								jsonpointer.set(obj, '/foo', 6);  // sets obj.foo = 6;
							 | 
						||
| 
								 | 
							
								jsonpointer.set(obj, '/qux/-', 6) // sets obj.qux = [3, 4, 5, 6]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var pointer = jsonpointer.compile('/foo')
							 | 
						||
| 
								 | 
							
								pointer.get(obj)    // returns 1
							 | 
						||
| 
								 | 
							
								pointer.set(obj, 1) // sets obj.foo = 1
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Testing
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    $ npm test
							 | 
						||
| 
								 | 
							
								    All tests pass.
							 | 
						||
| 
								 | 
							
								    $
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[](https://github.com/janl/node-jsonpointer/actions/workflows/node.js.yml)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Author
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(c) 2011-2021 Jan Lehnardt <jan@apache.org> & Marc Bachmann <https://github.com/marcbachmann>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Thanks to all contributors.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## License
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								MIT License.
							 |