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 Online Evaluator and Tester

Paste JSON, write a JSONPath expression starting with $, and see every matching value with its resolved path. The evaluator supports wildcards, recursive descent (..), array filters ([?(@...)]), slices, and multi-index, making it useful for debugging API responses, crafting Postman assertions, or learning JSONPath syntax from scratch.

Expression vs. Result

JSONPath Expression
// Select a nested value
$.user.address.city

// All prices in an array
$.products[*].price

// Recursive: every "id" anywhere
$..id

// Filter: items over $10
$.items[?(@.price > 10)]

// Slice: first three items
$.items[0:3]
Result (matched values)
"London"

[9.99, 14.99, 4.50, 29.00]

[1, 2, 3, 42, 7]

[
  { "name": "Widget", "price": 14.99 },
  { "name": "Gadget", "price": 29.00 }
]

[{ "name": "A" }, { "name": "B" }, { "name": "C" }]

How to Use

  1. Paste your JSON data into the left editor panel
  2. Type a JSONPath expression starting with $ in the expression field
  3. Press Enter or click Evaluate to run the query
  4. Review each match: the extracted value and its full resolved path are shown side by side

Features

  • Root navigation with $, dot notation, and bracket notation
  • Wildcard * for all array items or all object keys
  • Recursive descent .. to search every level of nesting
  • Array filters [?(@.field op value)] with ==, !=, <, >, <=, >=
  • Slices [start:end] and multi-index [0,2,4]
  • Shows matched value and exact resolved path for every result
  • 100% private: runs entirely in your browser, nothing is uploaded

Frequently Asked Questions

What is JSONPath syntax?

JSONPath expressions start with $ (the root object). Use dot notation ($.user.name) to navigate keys, [*] for all array items, .. for recursive descent, and [?(@.field > value)] for filters. Slices like [0:3] and multi-index like [0,2,4] are also supported.

How do I select all values in an array?

Use the wildcard expression $.arrayName[*] to select every element. To extract a specific field from every element, write $.arrayName[*].fieldName. For example, $.items[*].price returns the price from every item in the array.

What is the difference between dot and bracket notation?

Dot notation ($.user.name) is shorter and works for simple alphanumeric keys. Bracket notation ($.user["first name"]) is required when the key contains spaces, hyphens, or other special characters. Both navigate to the same value when the key has no special characters.

Related Tools