{ } JSON Workbench0 network requests. Check DevTools

"JSONPath Tester":{ }

Paste JSON, type a JSONPath expression, and see the matching values update live. Supports child and recursive descent, wildcards, array slices, and filter expressions. Runs 100% in your browser: zero network requests, so your data never leaves the page.

What is a JSONPath tester?

A JSONPath tester lets you write a JSONPath expression and instantly see which values it selects from a JSON document: the fastest way to build and debug a path before using it in code, a config, or an API filter. Paste your JSON, try an expression, and refine it live. Everything runs in your browser, so real payloads (often with tokens or personal data) never leave your machine.

JSONPath cheatsheet

ExpressionMeaning
$The root element
$.a.bChild: b inside a
$.a[0]First element of array a
$.a[*]Every element of a
$..emailEvery email at any depth
$.a[?(@.x > 1)]Elements where x > 1

How to use

  1. Paste JSON into the JSON pane on the left.
  2. Type a JSONPath expression in the JSONPath box, e.g. $.store.users[*].email.
  3. Matches update live as you type; results show as a JSON array of the values found.
  4. An empty expression returns the whole document; an invalid one shows the error.
  5. Runs 100% in your browser (jsonpath-plus); nothing is uploaded.

Examples

Select a field from every array element

Input
$.store.users[*].email

Filter with a predicate

Input
$.store.users[?(@.roles.indexOf('admin') > -1)].name
Output
[
  "Ada"
]

Recursive descent: every 'email' anywhere

Input
$..email

FAQ

What is JSONPath?

JSONPath is a query language for JSON, like XPath is for XML. Expressions start with $ (the root) and drill in with .key, [index], wildcards [*], recursive descent .., and filters [?(...)]. This tester evaluates them live against your JSON.

What syntax does it support?

It's backed by jsonpath-plus, which supports the common JSONPath operators: child and recursive descent, array slices, wildcards, unions, and filter expressions with @ referring to the current node.

How do I select all items in an array?

Use a wildcard: $.users[*] returns every element; $.users[*].name returns each element's name. $.users[0] returns just the first.

How do filters work?

A filter [?(expression)] keeps elements where the expression is true, with @ as the current item, e.g. $.users[?(@.age > 18)]. Use it to find matching objects without scrolling.

Is my JSON uploaded?

No. Evaluation runs entirely in your browser. Open DevTools → Network: zero requests after load.

Related tools