The jsonpath package provides RFC 9535 JSONPath functionality in Go.
- 📦 See the package documentation for usage and examples.
- 📚 See the RFC 9535 JSONPath standard for details on the JSONPath query syntax and examples of its usage.
- 🛝 Try it out in the Playground.
A brief overview of RFC 9535 JSONPath syntax:
Syntax Element | Description |
---|---|
$ | root node identifier |
@ | current node identifier (valid only within filter selectors) |
[<selectors>] | child segment: selects zero or more children of a node |
.name | shorthand for ['name'] |
.* | shorthand for [*] |
..[<selectors>] | descendant segment: selects zero or more descendants of a node |
..name | shorthand for ..['name'] |
..* | shorthand for ..[*] |
'name' | name selector: selects a named child of an object |
* | wildcard selector: selects all children of a node |
3 | index selector: selects an indexed child of an array (from 0) |
0:100:5 | array slice selector: start:end:step for arrays |
?<logical-expr> | filter selector: selects particular children using a logical expression |
length(@.foo) | function extension: invokes a function in a filter expression |
Copyright © 2024-2025 David E. Wheeler