JSONPath Finder & Tester — Free Online 2026
JSONPath Finder & Tester is the free online JSON path tool that does both: click any value in the interactive tree to instantly get its JSONPath expression, or switch to Query Tester mode and type expressions like $..price or $.store.book[?(@.price < 10)].title to see all matching values returned in real time — no install, no sign-up.
Last 5 JSON sessions — click to restore.
JSONPath Syntax Cheatsheet
| Expression | Meaning | Example |
|---|---|---|
$ | Root element | $ |
.key | Child (dot notation) | $.store.name |
['key'] | Child (bracket notation) | $['store']['name'] |
.. | Recursive descent (all depths) | $..price |
* | Wildcard (all children) | $.store.* |
[n] | Array index (0-based) | $.books[0] |
[a,b] | Union of indices | $.books[0,2] |
[s:e] | Slice (Python-style) | $.books[0:2] |
[?(@.x op v)] | Filter expression | $.books[?(@.price < 30)] |
@ | Current node (inside filter) | @.inStock == true |
How It Works
- Load your JSON (paste, upload, URL, or sample)
- Use Tree Finder to click values and get paths
- Switch to Query Tester to evaluate JSONPath expressions
- Export the path as jq, Postman, or JavaScript
- Copy and use in your code or API tool
JSONPath Finder Online — Complete Guide
This JSONPath finder online is a dual-mode tool that lets you both discover and evaluate JSON paths in real time. In Tree Finder mode, paste any JSON and click any value — string, number, boolean, or null — to instantly see its complete JSONPath expression like $.store.books[0].price. In Query Tester mode, type a JSONPath expression including advanced syntax like recursive descent ($..price), wildcards ($.store.*), filter expressions ($.books[?(@.inStock == true)]), and slices ($.books[0:2]), and all matching values are returned immediately. Everything runs in your browser — your JSON data never leaves your device.
When to Use Finder Mode vs Query Tester
Use Finder mode when you are exploring an unfamiliar API response and want to discover which path leads to a specific value. It is the fastest way to go from "I can see this value" to "I have the exact JSONPath for it." Use Query Tester mode when you already know the path pattern and want to verify it returns the right data — for example, confirming that $.items[?(@.status == "active")].id returns all active item IDs before wiring it into your Postman test or ETL pipeline. Together, the two modes cover the full JSONPath workflow without switching between tools.
JSONPath vs JSON Pointer vs jq
Three technologies are commonly confused. JSONPath (Stefan Goessner, 2007; standardized as RFC 9535 in 2024) is the most widely supported format — used natively in Postman, AWS CloudFormation, Kubernetes config selectors, Python jsonpath-ng, and Java Jayway JsonPath. It uses $ as root and supports filter expressions. JSON Pointer (RFC 6901) uses slash-delimited paths like /store/books/0/title — simpler, no filters, used in JSON Patch. jq is a standalone command-line tool with a Turing-complete transformation language — far more powerful than JSONPath for transforming data, but not interoperable with most API tools. The export snippet on this tool converts any JSONPath to its jq equivalent for command-line use.
Filter Expressions — The Most Powerful JSONPath Feature
Filter expressions let you select array elements based on their content rather than their index. The syntax is [?(@.field operator value)] where @ represents the current element. For example, $.products[?(@.price < 50 && @.inStock == true)] returns all products under $50 that are in stock. Supported operators in this tool: == != < <= > >= with && and || for combining conditions. Filter evaluation uses a safe AST-based engine — no eval() — so you can safely paste untrusted JSON and test against it.
Real-World Use Cases for JSONPath
API testing with Postman: paste your API response here, find the path to the value you want to assert, then copy it directly into your Postman test script. ETL pipelines: use $..fieldName to extract a field from every level of a nested response without knowing the exact structure. Log analysis: JSON Lines logs (one JSON object per line) can each be inspected here — find the path to your error code once, then use it in your Elasticsearch query or log aggregation rule. You can also pipe the output through our JSON to CSV converter to analyze the extracted data in a spreadsheet, or validate your source JSON with our JSON Validator before querying it.
JSONPath Syntax Reference and Common Patterns
Understanding which JSONPath expression to write is the main challenge for most developers. The cheatsheet above lists the syntax tokens. Below are the most frequently used patterns with explanations of when each is appropriate.
Recursive Descent (..) — The Most Searched Feature
The double dot .. operator traverses the entire document tree, finding all matching keys at any nesting depth. $..price returns every value stored under a key named price anywhere in the document — inside arrays, nested objects, or any combination. This is equivalent to jq's .. | .price? // empty. It is particularly useful when you receive API responses from different service versions where the same field appears at different nesting levels. The recursive descent evaluator in this tool visits every node exactly once, so there is no risk of infinite loops on cyclical structures (pure JSON cannot be cyclical).
Array Slices and Unions
Python-style slicing [start:end:step] works exactly as in Python: [0:3] returns the first three elements, [-2:] returns the last two, and [::2] returns every other element. Union syntax [0,2,4] returns elements at specific indices. These are supported in jsonpath-ng (Python), Jayway (Java), and most server-side implementations. Note that some libraries, including the JavaScript jsonpath npm package, have partial support — always test against your target runtime before deploying to production. Use our JSON Schema Generator to validate the structure of responses returned by these expressions.
Comparing JSONPath Implementations
| Feature | This tool | Postman | jsonpath-ng (Python) | Jayway (Java) |
|---|---|---|---|---|
Recursive descent .. | Yes | Yes | Yes | Yes |
Wildcard * | Yes | Yes | Yes | Yes |
Filter [?(@.x)] | Yes | Yes | Yes | Yes |
Slice [0:2] | Yes | Partial | Yes | Yes |
| RFC 9535 conformant | Subset | No | Partial | Partial |
File Upload and URL Loading
Beyond pasting JSON manually, this tool accepts .json file uploads (drag-and-drop or the Upload button) and can fetch JSON from any public URL that returns CORS-permissive headers. If a URL responds with a CORS error (which is common for non-public APIs), download the file and upload it instead — the tool will show a clear message explaining this. The JSON Repair tool can fix malformed JSON (trailing commas, single quotes, unquoted keys) before you bring it here for path analysis. If you need to convert your JSON data to another format after querying, try JSON to TypeScript to generate interface definitions or JSON Schema Generator to create a schema for validation.
Frequently Asked Questions
JSONPath is a query language for JSON, similar to XPath for XML. It uses dot notation like $.store.book[0].title to reference specific values inside a JSON document. The root is represented by $ and children are accessed with dots or bracket notation.
Paste or upload JSON, then either click any value in the tree to auto-generate its path (Finder mode), or switch to Query Tester mode to type a JSONPath expression like $..price and see all matching values highlighted instantly.
No. All parsing, path generation, and query evaluation runs entirely in your browser using JavaScript. Your JSON data never leaves your device.
The tester supports $ (root), .child (dot notation), ..descend (recursive), * (wildcard), [n] (array index), [a,b] (union), [s:e] (slice), and [?(@.key op value)] filter expressions with ==, !=, <, <=, >, >= operators and && / || logic.
A JSONPath finder generates a path by clicking a value in the tree — you navigate visually. A JSONPath tester evaluates a typed expression against data and returns matching values. This tool does both in one interface.
JSONPath is supported natively by Postman, Python jsonpath-ng, Java Jayway, and most API tools. jq is a command-line tool with a richer scripting language for transformations. Use JSONPath for querying; use jq for transforming. The Export tab on this tool converts any path to its jq equivalent.
Yes. If your log files are in JSON Lines (NDJSON) format, each line is a separate JSON document. Paste one entry here to explore its structure and generate paths for use in your log aggregation pipeline.
All valid JSON structures including nested objects, arrays, strings, numbers, booleans, and null values. Deeply nested structures are fully expandable in the tree view, and the query engine handles recursive descent across any depth.
Comments