JSONPath Tester

FreePrivateWildcards

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 / ..key recursive 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?

JSON Data
Matches
Results will appear here…
Enter Run expression  ·  Ctrl+Enter Test

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

Postman
Mirror Postman-style assertions locally. Read the dialect notes on What is JSONPath?, then validate full bodies with the JSON Formatter.
AWS
EventBridge and Step Functions lean on JSONPath-shaped filters. When debugging event payloads, pair this tester with JSON Diff to see what changed between deliveries.
Kubernetes
kubectl -o jsonpath output is easier to read after a pass through the formatter. Compare revisions of the same resource using JSON Diff.
API Testing
Frameworks like REST Assured or Karate assert on paths similar to JSONPath. Generate TypeScript models from sample payloads with JSON → TypeScript once you lock the fields you care about.

How to Use

  1. Paste your JSON data into the left panel
  2. Type a JSONPath expression starting with $
  3. Press Enter or click Test to run
  4. 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