JSONPath, JSON Patch and JSON Pointer for JavaScript.
We follow RFC 9535 and test against the JSONPath Compliance Test Suite.
import { jsonpath } from "json-p3";
const data = {
users: [
{ name: "Sue", score: 100 },
{ name: "John", score: 86 },
{ name: "Sally", score: 84 },
{ name: "Jane", score: 55 },
],
};
const nodes = jsonpath.query("$.users[[email protected] < 100].name", data);
console.log(nodes.values()); // [ 'John', 'Sally', 'Jane' ]
- Docs: https://jg-rp.github.io/json-p3/
- Install: https://jg-rp.github.io/json-p3/#install
- JSONPath playground: https://jg-rp.github.io/json-p3/playground
- JSONPath syntax: https://jg-rp.github.io/json-p3/guides/jsonpath-syntax
- API reference: https://jg-rp.github.io/json-p3/api
- Change log: https://github.com/jg-rp/json-p3/blob/main/CHANGELOG.md
- NPM: https://www.npmjs.com/package/json-p3
- Issue tracker: https://github.com/jg-rp/json-p3/issues
JSON P3 is written in TypeScript, compiled to JavaScript using Babel, and bundled using Rollup. The following, included bundles target defaults, maintained node version
, as defined by Browserslist.
JSON P3 has zero runtime dependencies.
Bundle | Description |
---|---|
json-p3.cjs.js |
A CommonJS formatted bundle. |
json-p3.esm.js |
An ECMAScript module formatted bundle. |
json-p3-iife.js |
A bundle formatted as an Immediately Invoked Function Expression. |
json-p3-iife.min.js |
A minified bundle formatted as an Immediately Invoked Function Expression. |
These environment variables control the location of the compliance test suite under test and if nondeterministic object iteration is enabled for those tests.
Environment Variable | Description |
---|---|
JSONP3_CTS_PATH |
The path to cts.json used by compliance.test.ts . Defaults to tests/path/cts/cts.json . |
JSONP3_CTS_NONDETERMINISTIC |
When set to true , enables nondeterministic iteration of JSON objects for compliance.test.ts . Defaults to false . |
Please see Contributing to JSON P3
json-p3
is distributed under the terms of the MIT license.