🔍 Transparent query, pointer and path descriptors for JSON
json-where converges the following standards and libraries in order to help normalize JSON query/addressing descriptors:
The goal is to increase developer transparency and to provide a unified interface for matching related JSON data.
json-where's simple interface spares developers from having to:
- decide between which query/addressing specifications(s) to support in their projects
- write an interface for when more than one standard needs support
- bottleneck integrators of their library into a certain specificaton
- write a mechanism that provides a consistent return format (e.g. array vs. element)
npm install json-where
This example shows how to use the main feature of
json-where, which is being able to provide any query or reference string to
$, an "operator" which will automatically imply the correct specification to use based on the reference itself:
const data =foo:bar: 'baz'let query = // 'baz'let path = // 'baz'let pointer = // 'baz'
If you want to be slightly more concise:
let query = // 'baz'let path = // 'baz'let pointer = // 'baz'
You may also, of course, access and use each specification individually:
// 'baz'// 'baz'// 'baz'
You can easily specify whether or not you should expect a single object or a collection:
// 'baz'all // ['baz']
A couple of common utility methods are also defined for working with collections:
// 1// true// false
You can also infer the specification directly from the relation itself via
// 'json-query'// 'json-path'// 'json-pointer'
json-pointer supports updating values in a query-like fasion:
const path =path // 'bar'path // ...path // 'zab'