Test JSONPath Expressions Online
Extract specific fields from large JSON responses using JSONPath. Test filter expressions, wildcards, and recursive descent — no code required.
Open JSONPath Tester with a ready-to-run example.
- You need to extract a specific nested field from a large API response without writing transformation code.
- You are writing a JSONPath expression for a monitoring rule or alert condition and want to test it first.
- You need to pluck all values of a particular key from an array of objects.
- You are configuring a data pipeline or ETL tool that uses JSONPath selectors.
- Paste your JSON into the left panel of the JSONPath Tester.
- Type your JSONPath expression in the expression box (start with
$). - Results update live as you type, showing matching values highlighted in the output panel.
- Copy the matched values as a JSON array or as individual values.
$.items[*].idextracts allidfields from an array nameditems.$..priceuses recursive descent to find allpricefields at any depth.- Filter expressions use
@for the current element:$.books[?(@.price < 10)]. - Array slicing:
$.items[0:5]returns the first five elements (end index is exclusive).
Filter books under $10
{
"store": {
"book": [
{"title": "Sayings of the Century", "price": 8.95},
{"title": "Sword of Honour", "price": 12.99},
{"title": "Moby Dick", "price": 8.99},
{"title": "The Lord of the Rings", "price": 22.99}
]
}
}
$.store.book[?(@.price < 10)].title
["Sayings of the Century", "Moby Dick"]
Goessner JSONPath: $ (root), . (child), .. (recursive descent), [] (subscript/slice), * (wildcard), [?(...)] (filter), and slice notation.
Use a filter expression inside []: [?(@.status == "active")]. The @ symbol refers to the current element. You can use ==, !=, <, >, <=, >=.
$ is the root of the JSON document. Every JSONPath expression must start with $. Use $. for the root object's properties and $[ for root array access.
Privacy-first: runs locally in your browser. No uploads.