Path extraction
Supports $ the root, .. recursion, slices, and filters. Wildcards [*] can take the same-named field from every array item at once.
The page ships common templates. Pick one, then edit it into your own path.
You can also load data via #data={"name":"Ada"} or #url=... It is cleared from the address bar after it is read.
JSONPath uses paths such as $.store.book[*].title to pull nodes from a document. Queries are read-only and do not change the original—useful for taking a list or nested field from a large response. For API test assertions or pulling one array layer from logs, it is shorter than writing nested accessors by hand.
Supports $ the root, .. recursion, slices, and filters. Wildcards [*] can take the same-named field from every array item at once.
The page ships common templates. Pick one, then edit it into your own path.
Change one line of path and see results immediately—faster than a throwaway script. Expression errors and empty matches are reported clearly.
Copy a path from tree view to verify it and reduce typos.
Extracted arrays can go to CSV or type generation. After the path is correct, paste it into tests or a jq script.
This page does not modify the original. It is for read-only investigation.
{
"store": {
"book": [
{ "title": "Sayings of the Century", "price": 8.95 },
{ "title": "Slightly Bad", "price": 12.99 }
]
}
}
$.store.book[*].title
["Sayings of the Century", "Slightly Bad"]
The idea is similar: describe “which part you want” with a path instead of writing loops.
A common form is $..book[?(@.price<10)] conditions like that. Syntax follows this page’s engine.
The path usually does not match the real structure. Check key names, array indexes, and whether a node is an object or an array in tree view.
No. It only outputs the list of matched values.
$ with a shallow path, then go deeper. JSONPath details differ slightly across libraries. Treat expressions that pass on this page as the baseline, then match your language’s implementation.