Begin with simple dot notation like $.users[0].name to verify your path. Once it works, combine with wildcards, filters, and recursive search for more complex queries.
The [?()] filter syntax lets you select elements by condition: $[?(@.price > 100)] filters elements where price exceeds 100. Combine with && for multiple conditions.
Use $..property to find all matching properties at any nesting level. Perfect for extracting fields from deeply nested API responses without knowing the exact path.
All JSONPath evaluation happens entirely in your browser. Your JSON data is never uploaded, stored, or tracked. Safe for proprietary APIs, production configs, and sensitive data.
Test JSONPath expressions online using this free browser-based tool. Simply paste your JSON document in the left panel, enter a JSONPath expression in the query bar (or click one of the Quick expressions), and the matched results appear instantly with syntax highlighting. No signup, no server storage.
To filter JSON array with JSONPath, use bracket notation with a filter expression: [?(condition)]. Reference the current element with @. Example: $.users[?(@.age > 30)] selects all users older than 30. Supports ==, !=, >, <, >=, <=, and contains.
To use wildcard in JSONPath, use [*] for array elements or .* for object properties. For example, $.users[*].name extracts the name field from every user object in the array. Wildcards are essential for iterating over array data.
To do recursive search in JSONPath, use the double dot operator ... For example, $..email finds all email fields anywhere in the document. This is extremely useful when working with deeply nested JSON structures where you don't know the full path to the data you need.
To access nested fields with JSONPath syntax, chain dot-separated keys. For example, $.data.users[0].address.city navigates from the root through data → users[0] → address → city. Combine dot notation with bracket notation for array index access.
JSONPath filter expressions evaluate conditions on each array element. For multiple conditions, combine them within a single filter: $[?(@.age >= 25 && @.city == 'NYC')]. You can chain multiple filters sequentially for complex data selection pipelines.
In JSONPath, . (single dot) accesses a direct child property at the current level. .. (double dot) performs a recursive descent search through all levels of nesting. For example, $.name only finds a top-level name property, while $..name finds every name property at any depth.
Yes. All JSONPath queries are evaluated 100% in your browser using client-side JavaScript. Your JSON data is never sent to any server, never stored in any database, and never tracked. This makes it safe for proprietary APIs, production configuration files, and any sensitive data you need to query.