Skip to content

jg-rp/json-p3

Repository files navigation

JSON P3

JSONPath, JSON Patch and JSON Pointer for JavaScript.
We follow RFC 9535 and test against the JSONPath Compliance Test Suite.

LICENSE Tests NPM npm type definitions


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[?@.score < 100].name", data);
console.log(nodes.values()); // [ 'John', 'Sally', 'Jane' ]

Links

Bundles

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.

Compliance Environment Variables

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.

Contributing

Please see Contributing to JSON P3

License

json-p3 is distributed under the terms of the MIT license.