JSONPath Tester — Query JSON Online Free
Test JSONPath expressions against any JSON in your browser. Supports $, $.foo, $.foo[0], $..key, wildcards. Instant results, no signup.
Test JSONPath expressions against any JSON document right in your browser. Useful when you're exploring an API response, debugging a config, or quickly extracting a specific value from a large payload.
Want to validate the shape first? JSON Formatter parses and pretty-prints. Need types from the matched values? JSON to TypeScript generates interfaces from any JSON sample.
How to Test JSONPath Expressions
Paste your JSON
Paste the JSON document you want to query into the left editor.
Type a JSONPath expression
Type an expression like $.users[0].name in the JSONPath input. Use $ to start, dots for children, brackets for indices, $..key for recursive descent.
Click Run (or press Enter)
Matching values appear in the right pane. The match-count banner shows how many matches were found.
When Do You Need JSONPath?
Exploring an unfamiliar API: You hit an endpoint and get back a 5-page JSON response. Use JSONPath to drill straight to the field you need without reading the whole tree.
Writing assertions: JSONPath is the standard way to express “the third user's email” or “every product price” — useful when writing API tests, contract tests, or assertions in tools like Postman.
k8s / config queries: kubectl supports JSONPath via `-o jsonpath=...`. Test your expression here first to make sure it returns what you expect before piping it into kubectl.
Quick data extraction: Pull every email address out of a user dump with $..email, or every nested ID with $..id — one expression, one click, all results.
Why Use PDFFlare for JSONPath?
Live Match Count
Every Run shows exactly how many matches your expression produced — instant feedback on whether your path is right.
One-Click Examples
Common expression patterns are right there as buttons — tap one to populate the input and see what each does.
100% Browser-Based
Production payloads stay on your device — no uploads, no analytics on JSON contents.
No Signup Required
Open, paste, type, run. No account, no rate limits.
Frequently Asked Questions About JSONPath
The standard subset most users actually type: $ (root), $.foo (child), $.foo.bar (chained), $.foo[0] (index), $.foo[*] (array wildcard), $.* (object wildcard), $..key (recursive descent), and $.foo[?(@.bar > 30)] (filter expressions on array items).
Finding every occurrence of a property name no matter where it lives in the tree. Example: $..id returns every id field across users, posts, comments — useful for collecting all unique IDs in a complex API response.
Wrap a predicate in [?(...)]. Inside, use @ to refer to the current array item and access its fields with dot notation. Comparators: == != < <= > >=. Operands can be field refs (@.age), numbers, strings ('admin'), or true/false/null. Combine with && (AND), || (OR), ! (NOT), and () for grouping. Example: $.users[?(@.age > 30 && @.active == true)].
Yes. Use && (AND) and || (OR) to combine predicates, ! to negate, and parentheses for grouping. Example: $.users[?(@.age > 30 && (@.role == 'admin' || @.tier > 2))]. Operator precedence is the JS standard: ! > && > ||. Parens override.
JSONPath is browser-native and zero-install — paste, type, get answers in seconds. jq is more powerful but needs a CLI install and has a steeper learning curve. JSONPath excels at quick exploration and one-off queries.
There's RFC 9535 (the official JSONPath spec finalized in 2024) plus various pre-spec dialects. PDFFlare's tester implements the most-common navigation subset that all dialects agree on, plus recursive descent.
No. JSONPath evaluation runs entirely in your browser — your data never leaves your device. Safe for production payloads.
The result pane shows an empty array and the match count is 0. No errors — JSONPath is forgiving by design, so a missing key just means zero matches rather than an exception.