
A JSONPath tester evaluates a JSONPath expression against a JSON document and returns every value the expression selects, along with the exact path to each match. JSONPath is a query language for JSON, the way XPath is a query language for XML: you write a short path such as $.store.book[*].author and get back the list of matching values without writing any code. This tool parses your JSON, runs the expression, and shows both the results and the normalized path of each one.
The point of a tester is feedback. When a JSONPath expression returns nothing, or returns more than you expected, the problem is almost always a small syntax detail: a missing wildcard, the wrong bracket style, or a filter that compares a string to a number. Running the query live against real data, and seeing which nodes it touches, turns that guesswork into a two second check. It is the same reason developers keep a regex tester open next to their editor.
Everything runs in your browser. The JSON is parsed with the built-in JSON parser and the expression is evaluated by a small interpreter written in JavaScript, so nothing is uploaded, logged, or stored. That matters because JSONPath work usually happens against API responses and config files that carry tokens, IDs, or customer records, and this tool keeps that payload on your own machine and keeps working offline once the page has loaded.
JSONPath is a convention with several implementations rather than a single specification, and they disagree at the edges. Filter syntax is the least portable part, so an expression that works in one library may need adjusting in another. Recursive descent is the expensive operation: it walks every node in the document, so on a large file a query beginning with two dots is noticeably slower than an explicit path.
Paste an object or array into the JSON box, or load the sample bookstore document. The input must be valid JSON; parse errors are reported with the position so you can fix them.
Enter a path such as $.store.book[*].title or $..price. Start from $ for the root, use dots or brackets for children, and add filters like [?(@.price < 10)] to select by value.
The tool evaluates the expression as you run it and lists every matched value with the count. Switch the output to paths or entries to see where each result came from.
Copy the matched values, the list of paths, or the full path-and-value entries as JSON to paste into your code, tests, or documentation.
Root, child, recursive descent (..), wildcard (*), array index including negative index, unions, and Python-style slices are all supported so most published JSONPath examples run unchanged.
Select nodes by value with filters such as [?(@.price < 10 && @.category == "fiction")]. Comparison operators, existence checks, and && / || combinations are evaluated per element.
See the matched values, the normalized path of every match, or both together as entries. The path output is handy for building the expression you actually need.
Invalid JSON and malformed expressions are reported separately with a specific message, so you know whether to fix the data or the query rather than staring at an empty result.
Generate a JSON Schema from any JSON sample. Infers types, merges arrays of objects into one item schema, derives required fields, and detects date-time, email, uri, and uuid formats. Draft-07 and 2020-12 output. 100% client-side.
Generate TypeScript interfaces from any JSON sample. Infers nested types, merges arrays of objects into a single interface, marks nullable and missing keys optional, and emits clean exportable code. 100% client-side.
Convert JSON to well-formed XML instantly. Map object keys to elements, @-prefixed keys to attributes and #text to content, expand arrays into repeated tags, and export minified or pretty-printed XML. 100% client-side.
Format, beautify, minify, and validate XML online - preserves comments, CDATA, and attribute order, with clear error reporting
0 comments
No comments yet. Be the first to share your thoughts!