JSONPath Tester
Test JSONPath expressions against JSON data and see every match with its exact resolved path.
Supported expression subset (pinned for this tool)
This engine follows a Goessner-style subset (see goessner.net/articles/JsonPath). not every feature from Jayway, kubectl, or Postman dialects.
- Navigation:
$root,.key/..keyrecursive descent,..*all descendant values - Brackets:
[n]index,[*]wildcard,[0,2,4]multi-index,[start:end]slice (half-open) - Objects:
.*all own property values at the current level - Filters (on arrays only):
[?(@.a == 1)], comparisons==!=<><=>=, literals (number / boolean / null / quoted string),&&and||, existence[?(@.id)]or[?(@)] - Not supported: bracket-quoted keys
['key'], scripts(@.length-1), regex=~, parent^, filters on non-arrays
Background: What is JSONPath?
JSONPath Tester Online
Test JSONPath expressions against your JSON data and see every match with its exact resolved path. The engine follows a pinned Goessner-style subset (documented in the tool and below): recursion .., slices and multi-index, wildcards, and bracket filters. not every feature from every product dialect.
Used In Tools Like
-o jsonpath output is easier to read after a pass through the formatter. Compare revisions of the same resource using JSON Diff.How to Use
- Paste your JSON data into the left panel
- Type a JSONPath expression starting with
$ - Press Enter or click Test to run
- Each match shows its value and full resolved path
Supported Syntax (subset)
$.name → root-level key $.address.city → nested key $.items[0] → array index $.items[*] → all array items $.items[*].price → field on every array item $.items[0:3] → slice (half-open) $.items[0,2,4] → multi-index $..id → recursive: every "id" property $..* → recurse: every property value & array element $.store.* → all own values of "store" object
Filters (arrays only)
$.users[?(@.age >= 18)] $.users[?(@.role == "admin" || @.role == "ops")] $.tokens[?(@.exp)] → rows where "exp" exists
Comparisons supported: == != < > <= >= with number, boolean, null, or quoted string literals; combine with && and ||. Not supported: ['quoted'] bracket keys, regex =~, arbitrary scripts like (@.length-1), or filters on non-array nodes.
Features
- Pinned Goessner-style subset documented in-page (see expander above the editors)
- Recursion
.., slices, multi-index, and array filters[?(@...)] - Wildcard
*for arrays and objects; dot navigation from root$ - Shows matched value and exact resolved path
- Press Enter in the path field to run instantly
- 100% private; runs entirely in your browser
Frequently Asked Questions
What is JSONPath?
JSONPath is a query language for JSON, similar to XPath for XML. It lets you extract specific values using path expressions like $.user.name or $.items[*].price.
Where is JSONPath used?
JSONPath is used in Postman (test assertions), AWS EventBridge (event filtering), Kubernetes (kubectl -o jsonpath), and many REST API testing frameworks like REST Assured and Karate.
What does the wildcard * do?
The wildcard * matches all elements of an array or all keys of an object. For example, $.items[*].name returns the "name" field from every item in the array.
Is this every JSONPath dialect?
No. Postman, kubectl, Jayway, and others extend or differ on edge cases. This site implements one explicit subset aligned with Stefan Gössner's original article and common navigation patterns. See the "Supported expression subset" details in the tool UI for the exact list.
Related Tools