How do I test JSONPath expressions online?
Paste your JSON data, type a JSONPath expression like $.store.book[*].title, and see matching results highlighted in real time. The tool supports dot notation, bracket notation, wildcards, array slicing, and filter expressions. Everything runs in your browser — your data never leaves your device.
Path: $.store.book[0].title
Data: {"store":{"book":[{"title":"Moby Dick"}]}}"Moby Dick"
JSON Path Tester
Test JSONPath expressions against your JSON data with real-time evaluation. Perfect for building API queries, data extraction, and debugging JSON structures.
About JSONPath
JSONPath is a query language for JSON, similar to XPath for XML. It lets you extract specific values from complex JSON structures using path expressions.
$— root object.key— child property[*]— all array elements[0],[0:3]— array index / slice..— recursive descent (search all levels)[?(@.price < 50)]— filter expression
JSONPath is commonly used in REST API testing, data pipelines, and configuration management to extract or validate specific fields from JSON payloads.
Everything runs in your browser — no data is sent over the network.
Tips & Best Practices
Use recursive descent (..) to find deeply nested values
$.store..price finds all price fields regardless of depth — you don't need to know the exact path. This is invaluable when exploring unfamiliar API responses. Combine with filters: $..book[?(@.price < 10)] finds all books under $10 anywhere in the document.
JSONPath implementations vary significantly
There is no single JSONPath standard (RFC 9535 was published in 2024 but adoption is incomplete). Jayway (Java), Goessner (original), and jsonpath-plus (JS) handle filter expressions, array slicing, and script expressions differently. Always test your JSONPath queries against the specific library your production code uses.
Array slicing follows Python conventions
$.items[0:3] returns the first 3 items (indices 0, 1, 2). $.items[-1:] returns the last item. $.items[::2] returns every other item. The syntax is [start:end:step]. These operations are much more efficient than fetching all items and filtering in application code when your JSONPath engine supports server-side evaluation.
Filter expressions can be injection vectors
JSONPath filter expressions like [?(@.name == 'value')] can be vulnerable to injection if the value comes from user input without sanitization. An attacker could inject ')]|| true ||[?(1==1' to bypass filters. Always parameterize or sanitize user input in JSONPath queries, just like SQL.
Frequently Asked Questions
What is JSONPath and how do I use it?
What is the difference between dot notation and bracket notation in JSONPath?
How do I filter JSON arrays using JSONPath?
Related Inspect Tools
Compression Tester
Test and compare Brotli, Gzip, and Deflate compression ratios for text content — sizes, savings, and speed
TypeScript 6.0 Migration Checker
Analyze your tsconfig.json for TS 6.0 breaking changes, deprecated options, new defaults, and get a readiness grade with fixes
AI Code Security Scanner
Scan JavaScript and TypeScript code for vulnerabilities — hardcoded secrets, injection, XSS, SSRF, prototype pollution, and 20+ security checks
Code Complexity Analyzer
Analyze JavaScript and TypeScript code for cyclomatic complexity, cognitive complexity, nesting depth, and maintainability index with per-function metrics