No JSON loaded
Paste, upload, or fetch JSON. Click nodes for paths; Ctrl+click to queue multiple paths.
Paste, upload, or fetch JSON. Click nodes for paths; Ctrl+click to queue multiple paths.
Test JSON path expression online before using it in Python, Java, Notepad++, Postman, or JavaScript. Learn JSONPath syntax, paste JSON, enter a query, and instantly see matching values — free and private in your browser.
A JSONPath expression is a query string that selects one or more values inside a JSON document — similar to how XPath selects nodes in XML. Every expression begins with $ (the document root), then uses dot notation, brackets, wildcards, and optional filters to navigate objects and arrays.
For example, the JSONPath expression $.users[0].email reads the email of the first user. The expression $.products[*].price returns every product price in a catalog. Use this tool to type an expression in the path tester bar and see matches highlighted instantly.
JSON path syntax combines a small set of operators. Use . (dot) for object properties, [n] for array indexes, and [*] when you need every array element. Add .. (double dot) for deep search when the field name may appear at any nesting level.
Filter expressions — written as [?(@.field op value)] — let you keep only array items that match a condition, such as prices above a threshold or orders with a given status. JSON Path Finder v3 supports filters, slices, and recursive queries in the interactive tester.
Use this page as your JSON path expression online tester: paste API or config JSON, type an expression like $.data.items[*].id, and see every match highlighted in the tree. No install, no signup — works in Chrome, Firefox, Edge, and Safari.
Validate expressions before pasting them into Postman tests, REST client scripts, CI pipelines, or production code. The path tester bar gives instant feedback so you catch typos and wrong indexes early.
For a JSON path expression in Python, use libraries such as jsonpath-ng or jsonpath-rw. After you confirm an expression here (e.g. $.users[*].email), use it in code: from jsonpath_ng import parse then parse("$.users[*].email").find(data).
In v3, click any node and copy the Python export format from the path panel — ready to paste into scripts, pytest assertions, or data pipelines. Test wildcard and filter expressions here first; Python library support for filters varies by package.
For a JSON path expression in Java, the Jayway JsonPath library is widely used: JsonPath.read(jsonString, "$.store.book[*].author"). Test complex paths — especially $..field and filters — in this tool before adding them to Spring Boot tests, Kafka consumers, or REST clients.
Copy the Java/Jayway format from the v3 path panel after selecting a node. Example: $.orders[?(@.total > 100)] selects high-value orders — verify matches visually, then use the same string in JsonPath.read().
Notepad++ does not evaluate JSONPath natively, so use this JSON path expression online tester to validate queries while editing JSON files in Notepad++. Paste your file contents here, build the path in the tree or tester bar, then copy the result back to your notes or scripts.
For quick edits in Notepad++, install a JSON plugin for formatting and syntax highlighting. For non-trivial expressions — wildcards ($..), filters, or multi-match paths — always test online here first rather than guessing bracket indexes by hand.
| Syntax | Meaning |
|---|---|
| $ | Root element — every JSONPath expression starts here |
| . | Child operator — $.parent.child selects a nested property |
| [] | Bracket subscript — [0] for index, ["key"] for property name |
| [*] | Wildcard index — all elements in an array |
| .. | Recursive descent — search all descendants (e.g. $..sku) |
| * | Wildcard — all properties or all array members at a step |
| @ | Current node — used inside filter expressions |
| [?(expr)] | Filter expression — keep nodes matching a condition (v3) |
| [start:end] | Array slice — e.g. [0:3] for the first three items (v3) |
Input
{"store":{"book":[{"title":"Sayings of the Century"},{"title":"Sword of Honour"}]}}
Expression
$.store.book[*].title
Result
["Sayings of the Century", "Sword of Honour"]
Input
{"users":[{"name":"John","age":25},{"name":"Amy","age":30}]}
Expression
$.users[0].name
Result
"John"
Input
{"catalog":{"items":[{"sku":"A1","price":9.99},{"sku":"B2","price":14.5}]}}
Expression
$..price
Result
[9.99, 14.5]
| JSONPath expression | What it selects |
|---|---|
| $ | The root object of the JSON document |
| $.store.book | The book array nested under store |
| $.store.book[0].title | Title of the first book |
| $.users[*].name | Every name field from all users |
| $.metadata.tags[*] | Every tag in the metadata.tags array |
| $..price | Every price field anywhere in the document (recursive) |
| $.items[?(@.qty > 0)] | Array items where qty is greater than zero (v3 filter) |
| $.orders[?(@.status == "shipped")].id | Order IDs with status shipped (v3) |
JSON Pointer (RFC 6901) is a single static path like /users/0/name — great for patch operations. JSONPath supports wildcards, filters, and recursive descent ($..), making it better for querying and extracting data from variable JSON shapes.
jq is a full command-line language for transforming JSON. JSONPath is a simpler query syntax supported by many libraries and APIs. Use this tool to test JSONPath before wiring it into Postman, Python, Java, or JavaScript.
JSON Path Finder is a free online JSONPath tester and evaluator. Paste JSON, explore it in an interactive tree, click any node to copy its path, or type a JSONPath expression in the tester bar to see matching values instantly.
Use it to debug API responses, extract nested fields from config files, learn JSONPath syntax with live examples, and copy paths in JSONPath, dot notation, bracket notation, jq, or JavaScript formats. Everything runs locally in your browser — your data never leaves your device.