What is jsonpointer?
The jsonpointer npm package allows for direct manipulation and access of specific parts of a JSON document using the JSON Pointer syntax. It provides a simple way to fetch or modify values within a JSON object by specifying their paths. This can be particularly useful for working with deeply nested JSON structures, enabling precise and efficient data retrieval or updates without the need to traverse the entire object manually.
What are jsonpointer's main functionalities?
Get a value from a JSON document
This feature allows you to retrieve a value from a JSON document by specifying its JSON Pointer path. For example, using the path '/foo/bar' would return the value 'baz' from the given JSON document.
{"/foo/bar": "baz"}
Set a value in a JSON document
This feature enables you to set a value in a JSON document at a specified JSON Pointer path. For instance, setting the path '/foo/bar' to 'new value' would update the JSON document accordingly.
{"/foo/bar": "new value"}
Remove a value from a JSON document
This functionality allows for the removal of a value from a JSON document by specifying its JSON Pointer path. Using the path '/foo/bar' would remove the 'bar' property from the 'foo' object in the JSON document.
{"/foo/bar": null}
Other packages similar to jsonpointer
lodash.get
Lodash's get function offers similar functionality for retrieving values from a JSON object using a dot/path syntax. Unlike jsonpointer, it does not adhere to the JSON Pointer RFC 6901 standard and uses a different syntax for paths.
object-path
object-path is another npm package that provides methods to access and manipulate properties of objects. It supports both dot and bracket notation for paths, offering a more flexible syntax compared to jsonpointer's strict RFC 6901 compliance.
JSON Pointer for Node.js
This is an implementation of JSON Pointer.
CLI
Looking to filter JSON from the command line? Check out jsonpointer-cli.
Usage
var jsonpointer = require('jsonpointer');
var obj = { foo: 1, bar: { baz: 2}, qux: [3, 4, 5]};
jsonpointer.get(obj, '/foo');
jsonpointer.get(obj, '/bar/baz');
jsonpointer.get(obj, '/qux/0');
jsonpointer.get(obj, '/qux/1');
jsonpointer.get(obj, '/qux/2');
jsonpointer.get(obj, '/quo');
jsonpointer.set(obj, '/foo', 6);
jsonpointer.set(obj, '/qux/-', 6)
var pointer = jsonpointer.compile('/foo')
pointer.get(obj)
pointer.set(obj, 1)
Testing
$ npm test
All tests pass.
$
Author
(c) 2011-2021 Jan Lehnardt jan@apache.org & Marc Bachmann https://github.com/marcbachmann
Thanks to all contributors.
License
MIT License.