Skip to content
← Back

JSONPath Generator - Visual Extraction

Data
Runs locally · Not uploaded

Free online JSONPath extractor. Click JSON tree nodes to auto-generate path expressions with wildcard support.

Was this result helpful?

For local tools, open DevTools → Network and search your input — it should not appear in requests.

Usage Guide

JSONPath is the query language for locating data inside JSON — paths like `.items[0].name` show up constantly in API automation and data pipelines. This tool does two things: auto-generate JSONPath expressions from a JSON structure, and live-validate any manually entered path against your data, local execution.

1. How to use

  1. Paste JSON data (object or array) into the input area; the tool parses and previews the structure.
  2. Click a target node to auto-generate its JSONPath (e.g. $.users[0].email).
  3. Or enter a JSONPath manually and see which data segments it matches in real time.
  4. Tap the template chips to try common expressions (all titles, last element, price filters); chips that do not match your current JSON structure are hidden automatically.

2. Common JSONPath syntax

  • Root symbol: $ represents the whole JSON; .users accesses the users field.
  • Array indexing: $.users[0] gets the first element; $.users[*] or $.users matches all.
  • Wildcards and filters: $.users[?(@.age > 30)] filters users older than 30.
  • Recursive descent: $..email matches every email field at any nesting level — fast deep-data location.
  • Last element: [(@.length-1)] — the generator emits this script form for the last array node instead of the unsupported [-1].

3. JSONPath dialect differences

JSONPath query syntax is now standardized by RFC 9535 (2024), but many implementations predate the standard, so dialect differences remain: wildcard boundaries, filter-expression quoting, slicing syntax (Jayway, JsonPath.NET, Python jsonpath-ng). This tool runs on jsonpath-plus: dot/bracket access, wildcards, filters, index unions, and the script expression [(@.length-1)] all work; the negative index [-1] silently returns empty, the length() function is unsupported, and regex filters need the .match(/re/i) form rather than =~. Every generated expression is verified against the real engine in the test suite, so paths produced here run on this site and in jsonpath-plus-family libraries. If you are porting to Jayway or jsonpath-ng, rewrite script expressions to the target dialect first.

FAQ

You can — path generation is fully local and never touches a server. Just redact personal data or secrets from a debug sample before you screenshot, share your screen, or paste it into a ticket.

They run in opposite directions: this tool auto-generates JSONPath expressions as you click nodes in the JSON tree, while jsonpath-query takes an expression you type and queries the data. Click a path out here, then verify it there — the pair is most efficient together.

Yes — the syntax matches mainstream JSONPath libraries such as JSONPath-Plus, and you can validate it in jsonpath-query first. Note that jq is a separate query language with incompatible syntax, so it cannot consume these expressions directly. Library support for dialect details also varies, so run the path on a real document in your target library before shipping.

For a trailing node it emits the script expression [(@.length-1)] instead of the negative index [-1] — the latter is unsupported by jsonpath-plus (this tool's engine) and silently returns an empty result. Clicking a tree node or a template validates the path against your current JSON immediately and shows the match count.

Dialect differences first: whether the target library supports wildcards and recursive descent, how array indexes versus filter expressions are written, and how nulls and missing fields behave can all differ. Archive success and failure samples together, and rerun the same assertion after any option or library-version change to catch silent drift.

Related Tools

Related Articles