JSONPath Tester

Evaluate JSONPath expressions against JSON data. Runs in your browser.

Expression
Input JSON
Matches
$

Enter a JSONPath expression

e.g. $.store.book[*].title

Enter JSON and a JSONPath expressionJSONPath · browser only · no data sent

What is JSONPath?

JSONPath is a query language for JSON, similar to XPath for XML. It lets you select values deep inside a JSON structure using a concise expression syntax. JSONPath is commonly used in API testing tools (Postman, REST-assured), data pipelines, and configuration files that reference nested JSON fields.

JSONPath Syntax Reference

$The root element
$.keySelect a named property
$.*All values at the current level (wildcard)
$.arr[0]First element of an array
$.arr[-1]Last element of an array
$.arr[*]All elements of an array
$.arr[0:2]Array slice (index 0 and 1)
$..keyRecursive descent — finds 'key' at any depth
$..arr[*].nameRecursive descent into array elements
$.arr[?(@.price < 30)]Filter: elements where price < 30

Example

Given this JSON:

{
  "store": {
    "book": [
      { "title": "Clean Code",  "price": 29.99 },
      { "title": "Refactoring", "price": 34.99 }
    ]
  }
}

$.store.book[*].title

["Clean Code", "Refactoring"]

$..price

[29.99, 34.99]

$.store.book[0]

{ "title": "Clean Code", "price": 29.99 }

$.store.book[?(@.price < 30)]

{ "title": "Clean Code", "price": 29.99 }

Features

No-code query builder

Click Builder to compose a path by picking keys and indices from your actual data — no syntax to remember

Recursive descent (..)

Find a key at any nesting level without knowing the depth

Filter expressions

Select array elements matching a condition like price < 30

Array slices

Select a range of array elements with [start:end:step]

Negative indices

Access elements from the end of arrays with [-1]

Full path display

Every match shows its complete JSONPath for easy reference

Copy individual matches

Copy any single match value as formatted JSON

Frequently Asked Questions

The tester implements the most widely used JSONPath features: dot/bracket notation, wildcards, array indexing, slices, recursive descent and filter expressions. It follows the de-facto JSONPath spec used by tools like Postman and Jayway JsonPath.

Yes. All evaluation runs in your browser using JavaScript. Your data is never sent to our servers.

Filter expressions support ==, !=, <, <=, >, >= operators. Example: $.items[?(@.status == 'active')] selects all items with status equal to 'active'.

Yes. If your JSON contains an array of strings or numbers, use $.arr[*] to select all elements or $.arr[0] to select by index.

Click Builder to show a breadcrumb of the path so far, plus buttons for every key or array index available at that point in your actual pasted data. Click a key or index to extend the path, or click any earlier breadcrumb to jump back to it. It composes a simple $.key[n][*] style expression for you — for filters or recursive descent, switch back to typing the expression directly.

Related Tools