Advertisements

headerup to 320x100 / 728x90

JSON Path Tester

Test JSONPath expressions against JSON data

JSONPath Tester

Use a dedicated source pane plus a query field and structured result list.

Source
Keep the full source visible while you adjust the pattern or selector.
Loading editor...
Tester
Use a dedicated query field with live result counts and matched values.
3 matches
Query
Advertisements

content bottomup to 300x250

What is JSON Path Tester

Last reviewed:

JSON (JavaScript Object Notation) is a lightweight, human-readable data format used almost everywhere on the web for APIs, config files, and log output.

JSONPath Tester evaluates JSONPath expressions against a JSON document you paste, returning the matched nodes alongside their path, index, and type. The evaluator implements the IETF JSONPath RFC 9535 spec.

The tool highlights which parts of the source document each path segment matches, so you can build up complex expressions one segment at a time and see exactly which nodes your filter would return.

Why use it

  • Design a JSONPath query for a Kubernetes jsonpath= flag, Jenkins pipeline filter, or GraphQL directive before copying it into production.
  • Explore a large JSON response interactively to find the exact path to a nested value.
  • Validate that a filter expression returns what you expect before writing it into a test case.

Features

  • RFC 9535 compliant JSONPath evaluator with support for filters, wildcards, slices, and recursive descent
  • Live highlighting of every matched node in the source document, with a list of resolved paths in the sidebar
  • Autocomplete for path segments based on the structure of the loaded JSON
  • Expression history: the last 10 JSONPaths you tested are kept in a dropdown for quick reuse
  • Examples gallery with common patterns (all prices, every author, nth item, filter by field)

How to use JSON Path Tester

  1. Paste JSON. Drop the source document into the left pane. Structural parse errors are underlined in red if the JSON is malformed.
  2. Type a JSONPath. Start with `$` (root). Autocomplete suggests next segments based on the structure of your document.
  3. Read matched nodes. Matches appear in the right pane as a JSON array. Each entry links back to its position in the source, highlighted on click.
  4. Refine with filters. Add a filter expression — `$.items[?(@.price > 20)]` — to narrow the match set. The tool evaluates filters lazily so even large arrays stay responsive.
  5. Copy the expression. Once the expression returns what you want, click Copy to lift it into your code or configuration.

Example (before/after)

JSON Path input

Start with the jSON Path input you want to process in JSON Path Tester.

JSON Path output

Get a jSON Path result from JSON Path Tester that is ready to review, copy, and reuse in the next step of your workflow.

Common errors

Unsupported input

The tool may reject input that does not match the expected content, structure, or file type.

Fix: Confirm the tool input requirements and paste the correct type of data.

Incomplete values

Missing fields or partial content can block processing or produce weak results.

Fix: Provide the full required input before running the tool.

Copying placeholder content

Sample or placeholder values can lead to output that looks valid but is not ready for real use.

Fix: Replace placeholders with your actual values before relying on the result.

FAQ

Which JSONPath spec does the tester follow?

IETF RFC 9535 — the standardized JSONPath spec finalized in 2024. That's the spec most modern implementations (JMESPath, jq's --compact-output, Kubernetes jsonpath=) converge on. The subtle differences between legacy Goessner JSONPath and RFC 9535 are documented in the help panel.

What's the difference between `..` and `.*` in JSONPath?

`..` is recursive descent — it visits every node at every depth. `.*` is a wildcard that matches one level only. For example, `$..price` finds every `price` property anywhere in the document, while `$.items.*.price` finds price only inside direct children of `items`.

Can I use filter expressions like `?(@.price > 20)`?

Yes. The `?(...)` filter syntax is fully supported with standard operators (==, !=, <, <=, >, >=) and logical combinations (&&, ||). Arithmetic (+, -, *, /) on matched fields also works inside filters.

Does the tester handle very large JSON documents?

Comfortably up to 10 MB of JSON. Larger documents are loaded with virtualized rendering so the UI stays responsive, but evaluation time scales linearly with document size — filter expressions on 100MB+ documents are better run server-side.

How do I select just the Nth item from an array?

Use bracket notation with the index: `$.items[0]` for the first item, `$.items[-1]` for the last. JSONPath also supports slices like `$.items[0:3]` for the first three items or `$.items[::2]` for every other item.

Is my JSON sent to a server for evaluation?

No — evaluation runs entirely in the browser using an embedded JSONPath engine. Your data never leaves your device, which matters when you're exploring sensitive API responses or logs.