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.