JSONPath Query TesterONLINE

Test a JSONPath query against local JSON and copy matched paths and values.

1 MiB per input · Ctrl / ⌘ + Enter to run

Supports root, child names and indexes, wildcards, and recursive names. Filters, slices, and unions are not supported.

Result
Ready. Paste input, then run the tool.
Your JSON stays in your browser. Core processing happens locally.
THE PRACTICAL GUIDE

Query nested JSON using supported JSONPath selectors

JSONPath Query Tester selects values from nested JSON using a path expression. It is useful when a response contains many branches but you know the field or array item you need.

When should you use it?

  • Extract every name from a team array.
  • Test a path before adding it to an integration.
  • Copy exact source values and their locations.
WORKED EXAMPLE

Example: select every team member name

Paste this document and run $.team[*].name in the query field. The wildcard selects each array item. This excerpt lists the exact paths and values contained in the tester report.

JSON document
{"team":[{"name":"Alex"},{"name":"Sam"}]}
Selected paths and values
$["team"][0]["name"] → "Alex"
$["team"][1]["name"] → "Sam"

Build a path one segment at a time

Begin at $ for the root, then add a property name or zero-based array index. A wildcard selects all children at that step; a recursive name finds that name deeper in the tree. Bracket notation is useful when a property contains punctuation. Check a short path first, then extend it so an empty result is easier to diagnose.

Distinguish a location from a filtering language

This query tool supports a documented subset: root, child names and indexes, wildcards, and recursive names. Filters, slices, and unions are unsupported. An expression copied from another JSONPath library may therefore fail even if that library accepts it. Results include exact source values and paths, which helps identify where a match came from. A query step exceeding 1,000 matches fails with a request to narrow the path; it does not return a partial selection.

AT THE WORKBENCH

Find a value without scanning every branch.

Enter JSON and a path expression. The result lists exact source values with unambiguous bracket-notation locations.

  1. Paste JSON

    Load a valid document without duplicate property names.

  2. Write a query

    Try $.team[*].name or $..name to find values.

  3. Use the matches

    Copy or download the matching paths and original JSON values.

IN PRACTICE

How do I select every name in a nested JSON array with JSONPath?

Start the query at the root $, select the array property, use [*] for every item, then select the name property. The tester returns source values and their normalized bracket paths so you can verify which record each match came from.

JSONPath query for an array of people

text
JSON:  {"team":[{"name":"Alex"},{"name":"Sam"}]}
Query: $.team[*].name
Matches: "Alex", "Sam"

Run the query in the second input, not in the JSON editor. The two matches retain their original array indexes.

No. This tester supports child names, indexes, wildcards, and recursive names; filters, slices, and unions from broader JSONPath syntax are outside its current subset.

BEFORE YOU USE THE RESULT

What should you check before using the result?

Filters, slices, unions, and arbitrary expressions are not supported. Duplicate object names make paths ambiguous and are rejected; output stops at 1,000 matches.

Supported query syntax

Start at $; use .name, ["name"], [0], [*], .*, ..name, or ..*. The tester supports a documented subset of JSONPath. It never evaluates expressions as JavaScript.

Exact source values

Matched values are copied from the original JSON text, preserving number spelling. Duplicate names are rejected because a path would be ambiguous. Results stop at 1,000 matches; narrow the query for larger documents.

Learn JSONPath syntax

Technical reference: JSONPath specification · RFC 9535 (this tool supports a subset)

THE JSON FIELD GUIDE
All guides