Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jg-rp/json-p3

JSONPath, JSON Patch and JSON Pointer for JavaScript
https://github.com/jg-rp/json-p3

json jsonpatch jsonpath jsonpointer

Last synced: about 1 month ago
JSON representation

JSONPath, JSON Patch and JSON Pointer for JavaScript

Awesome Lists containing this project

README

        

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

---

```javascript
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' ]
```

## Links

- 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

## Bundles

JSON P3 is written in TypeScript, compiled to JavaScript using [Babel](https://babeljs.io/), and bundled using [Rollup](https://rollupjs.org/introduction/). The following, included bundles target `defaults, maintained node version`, as defined by [Browserslist](https://browsersl.ist/#q=defaults%2C+maintained+node+versions).

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](https://github.com/jg-rp/json-p3/blob/main/CONTRIBUTING.md)

## License

`json-p3` is distributed under the terms of the [MIT](https://spdx.org/licenses/MIT.html) license.