Start with a specific branch
Use the book-title example to select one field per record. Recursive descent searches every depth, so $..price includes the bicycle price as well as book prices. Compare paths before broadening a query.
JSON tools
Try the price filter, then inspect matching values and normalized paths. Switch off auto-run for deliberate queries.
JSON stays in this browser. Only expressions you explicitly save are stored locally.
| Normalized path | Value |
|---|
Each value preview shows up to 1,200 characters. Copy and download include the full selected view.
RFC 9535 · jsonpath-rfc9535 1.3.0 · No JavaScript expressions
Result is out of date; export and sending are disabled.
A JSONPath tester helps when an API response contains the right data somewhere inside nested objects. Finding a value is only half the task: its path tells you which record produced it.
This JSONPath evaluator uses a single named dialect rather than silently trying several. Compare a narrow JSONPath expression with a recursive query before using it in your own application.
The JSONPath tester pairs each value with normalized paths such as $['store']['book'][0]. Two identical values can belong to different records; the table preserves that distinction instead of hiding their origins.
Choose the original document or the matched values array before sending it to another tool. Object selections can become CSV rows; scalar matches remain available for JSON formatting. No transfer starts just because a query completed.
Use the book-title example to select one field per record. Recursive descent searches every depth, so $..price includes the bicycle price as well as book prices. Compare paths before broadening a query.
Auto-run waits 350ms after edits. Turn it off to use Run query or Ctrl/Cmd+Enter. Editing JSON or the expression immediately makes the old result unavailable for copying, downloading and sending.
Values are always exported as an array of matches, even for one match. Paths view exports an array of normalized path strings. Saving an expression stores only that expression, up to 20 entries in this browser.
Select books with $.store.book[?@.price < 10], combine conditions with && or ||, and use standard length, count, match, search and value functions. The engine parses these expressions; it does not treat them as JavaScript code.
Child names, wildcards, recursive descent, negative indices, slices and selector lists let you narrow a nested response. A repeated selector can produce repeated matches; the result is not automatically deduplicated.
A valid query with no matches exports []. A property whose value is null is a real match and exports [null]. The match count distinguishes these cases, while syntax failures show an error and disable export.
Load a saved expression against a different document without replacing that document. Deletion has a preview and one undo. Results appear 50 at a time with 1,200-character value previews; copying and downloading use the full accepted result.
This JSONPath tester uses jsonpath-rfc9535 1.3.0 and RFC 9535 syntax. Standard filters and functions are available, but expressions written for a vendor-specific extension may need rewriting.
Check the root, property spelling, letter case and array level. No match produces []; it is not a parser failure. Test a shorter prefix or use the root example to confirm the data structure first.
Check the current-node marker @ and use JSONPath operators rather than JavaScript methods. The expression error identifies a line and column when the parser provides a location. Unsupported function names are errors too.
Recursive descent finds matching child names at every depth. $..price includes prices beneath both books and the bicycle; $.store.book[*].price only follows the book branch. Use the paths to inspect which nodes were selected.
No. The JSONPath tester parses the expression using its RFC engine and does not evaluate arbitrary JavaScript. Standard match and search functions still perform regular-expression work, which remains subject to the worker time limit.
Found a query this tool handles incorrectly?
Use the JSONPath tester to compare the price filter with recursive descent. Inspect the paths, then choose whether your next tool needs the original document or only the selected values.