JSONPath Tester
Run RFC 9535 JSONPath queries on JSON and see each match and path
About JSONPath Tester
Evaluates an RFC 9535 JSONPath expression against your JSON as you type, in your browser, listing each matched value with its normalized path and a match count. One-click examples on a bookstore sample cover wildcards, slices, filters and the length, count, match, search and value functions. Older Goessner or Jayway syntax, such as [(@.length-1)] or =~, is rejected with a hint on the RFC 9535 equivalent.
Category: Text.
Frequently asked questions
What is RFC 9535?
▾
RFC 9535, published by the IETF in February 2024, is the first formal standard for JSONPath. It defines the grammar, how filters compare values, five built-in functions and the normalized path format, which earlier implementations each handled differently.
How does it differ from Goessner or Jayway JSONPath?
▾
Script expressions like [(@.length-1)], the =~ operator, in and nin, and path functions like .length() are not supported; use [-1], match(), search() or length() inside a filter instead. Filters can be written without parentheses, as in [[email protected] < 10], and comparisons never convert types, so 1 and "1" are different.
Why does my query return no matches instead of an error?
▾
A missing member, an out-of-range index or a filter that matches nothing is valid and returns an empty list. Also, .length selects a member named length rather than an array's size, and an invalid regular expression in match() or search() simply matches nothing.
What is a normalized path?
▾
It is the unique RFC 9535 path of a matched node, written in bracket notation with single-quoted names, such as $['store']['book'][0]. Copy paths returns one per line, and each can be pasted back as a query that selects exactly that node.