{"name":"@deckyard/jsonpath","description":"Query JSON values with RFC 9535 JSONPath, checked against the official compliance test suite","versions":{"0.1.0":{"version":"0.1.0","kind":"git","url":"https://github.com/deckyard/deck-jsonpath.git","ref":"0.1.0","commit":"a323053daeea3829e344d7b6de5a5b88af3d3948","checksum":"","yanked":false,"license":"LGPL-3.0-only","requires":{},"engines":{"jennifer":"\u003e=0.25.0","jennifer-tiny":"\u003e=0.25.0"},"capabilities":[],"keywords":["json","jsonpath","rfc9535","query","i-regexp"],"description":"Query JSON values with RFC 9535 JSONPath, checked against the official compliance test suite","publishedAt":"1793740267","repoId":1444830704,"repoOwnerId":346943577,"repoOwner":"deckyard"}},"readme":"# @deckyard/jsonpath\n\n[![test](https://github.com/deckyard/deck-jsonpath/actions/workflows/test.yml/badge.svg)](https://github.com/deckyard/deck-jsonpath/actions/workflows/test.yml)\n[![Documentation](https://img.shields.io/badge/docs-github%20pages-blue)](https://deckyard.github.io/deck-jsonpath/)\n[![release](https://img.shields.io/github/v/release/deckyard/deck-jsonpath)](https://github.com/deckyard/deck-jsonpath/releases/latest)\n\n[RFC 9535](https://www.rfc-editor.org/rfc/rfc9535) JSONPath queries for\n[Jennifer](https://jennifer-lang.dev/), over `json.Value`. The whole RFC:\nname, wildcard, index, slice and filter selectors, descendant segments,\ncomparisons and logic, and the functions `length`, `count`, `match`,\n`search` and `value`, with I-Regexp patterns. Every case of the official\nJSONPath Compliance Test Suite passes. Results come as values, as JSON\nPointers for the `json` writers, or as normalized paths.\n\n**[Documentation](https://deckyard.github.io/deck-jsonpath/)**\n\n## Install\n\n```sh\njvc add @deckyard/jsonpath\n```\n\nOr unpack `src/` from a release archive (`deckyard-jsonpath-\u003cversion\u003e.tar.gz`)\ninto `vendor/deckyard/jsonpath/`.\n\n## Usage\n\n```jennifer\nuse io;\nimport \"@deckyard/jsonpath/\" as jsonpath;\n\ndef doc as json.Value init json.decode(fs.readString(\"store.json\"));\n\nfor (def title in jsonpath.query($doc, \"$..book[?@.price \u003c 10].title\")) {\n    io.printf(\"%s\\n\", json.asString($title));\n}\n\ndef p as jsonpath.Path init jsonpath.compile(\"$..book[?search(@.author, 'Tolkien')]\");\nfor (def m in jsonpath.find($doc, $p)) {\n    io.printf(\"%s at %s\\n\", json.encode($m.value), $m.pointer);\n}\n```\n\n## Requirements\n\nJennifer 0.25.0 or newer, default or `jennifer-tiny` binary. No capability.\n\n## Development\n\n```sh\ntools/check-all.sh                   # the full gate, as CI runs it\njennifer test src/jsonpath_test.j    # unit tests and the compliance suite\ntools/check-docs.sh                  # docs against the code\ntools/pack.sh dist                   # build the release archive\n```\n\n`testdata/cts` is the vendored compliance suite (BSD-2, see its README).\n\n## Licence\n\nLGPL-3.0-only, see [LICENSE](LICENSE). Copyright (C) 2026 mplx \u0026lt;mplx@jennifer-lang.dev\u0026gt;.\n"}