go jsonpath
Golang JSONPath Playground
Test and validate JSONPath online, then generate Go code snippets to extract values from JSON with JSONPath expressions.
Example: $.store.book[*].title
$
Input JSON
Live evaluation (300ms)Result
JSON array of matches[ "Sayings of the Century", "Sword of Honour", "Moby Dick" ]
Generate Code
// go get github.com/PaesslerAG/jsonpath
package main
import (
"encoding/json"
"fmt"
"github.com/PaesslerAG/jsonpath"
)
func main() {
var doc any
_ = json.Unmarshal([]byte(/* your JSON */), &doc)
result, err := jsonpath.Get("$.store.book[*].title", doc)
fmt.Println(result, err)
}Go JSONPath: quick start
- Write a JSONPath like
$.store.book[*]. - Use the evaluator above to validate results instantly.
- Copy the generated Go snippet and plug in your JSON + path.
JSONPath Syntax Cheatsheet
| Token | Meaning | Example |
|---|---|---|
| $ | Root object/array | $.store.book |
| @ | Current node (in filters) | $.book[?(@.price < 10)] |
| * | Wildcard | $.store.* |
| .. | Recursive descent | $..author |
| [n] | Array index | $.store.book[0] |
| [a,b] | Union | $.store.book[0,2] |
| [start:end] | Slice | $.store.book[0:2] |
| [?()] | Filter expression | $.store.book[?(@.category=='fiction')] |
Go JSONPath FAQ
▶How do I use JSONPath in Go?
Use the code generator below to copy a Go snippet, then replace the JSON and JSONPath expression with your own.
▶What is JSONPath?
JSONPath is a query language for JSON. It helps you select and extract values from JSON documents using path-like expressions.
▶How do I filter arrays in JSONPath?
Use filter expressions like $.items[?(@.price < 10)] to select array elements by conditions.
▶Why does my JSONPath return empty results?
Common reasons include invalid JSON input, a typo in keys, mismatched array/object structure, or using a JSONPath syntax not supported by your library.
▶Does this tool support recursive descent?
Yes. Use .. to search for keys at any depth, for example $..author.