JSONPath tester online

Processed locally
app.jsonpath.view

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.

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.

Debug expressions

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.

Next step

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.

Example

Data
{
  "store": {
    "book": [
      { "title": "Sayings of the Century", "price": 8.95 },
      { "title": "Slightly Bad", "price": 12.99 }
    ]
  }
}
Expression and results
$.store.book[*].title

["Sayings of the Century", "Slightly Bad"]
Is it like CSS selectors?

The idea is similar: describe “which part you want” with a path instead of writing loops.

How do I write a filter?

A common form is $..book[?(@.price<10)] conditions like that. Syntax follows this page’s engine.

Why are there no results?

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.

Does it change the original JSON?

No. It only outputs the list of matched values.

Recommended workflow

  1. Paste the full response and start from $ with a shallow path, then go deeper.
  2. Fill a template with a common expression and click “Run” to see the match count.
  3. When the result looks right, copy the expression into tests or a script.
  4. If matched object arrays need a table, continue on the CSV / Excel pages.

JSONPath details differ slightly across libraries. Treat expressions that pass on this page as the baseline, then match your language’s implementation.