JSONPath Tester
Test RFC 9535 JSONPath expressions against JSON, inspect matched values and normalized paths, and export results without sending your data to a server.
Private browser processing
Your JSON and queries stay in this browser tab. Xepoca does not upload documents, fetch external data, or send query results to a backend.
JSON document
Paste JSON, drop a file, or browse up to 10 MB.
JSONPath query
RFC 9535 syntax beginning at the root identifier $.
Quick examples
✓ Query executed successfully
Found 4 matching nodes in 3.23 ms.
Matches
4
Execution
3.23 ms
JSON nodes
44
Max depth
5
Matched results
Inspect the value type, normalized path, and complete matched value.
$['store']['book'][0]['title']Sayings of the Century
$['store']['book'][1]['title']Sword of Honour
$['store']['book'][2]['title']Moby Dick
$['store']['book'][3]['title']The Lord of the Rings
Output format
[
{
"path": "$['store']['book'][0]['title']",
"value": "Sayings of the Century"
},
{
"path": "$['store']['book'][1]['title']",
"value": "Sword of Honour"
},
{
"path": "$['store']['book'][2]['title']",
"value": "Moby Dick"
},
{
"path": "$['store']['book'][3]['title']",
"value": "The Lord of the Rings"
}
]Query statistics
Selectors
4
Filters
0
Wildcards
1
Slices
0
Descendants
0
Functions
0
Matched value types
Formatted JSON preview
{
"store": {
"book": [
{
"category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95,
"tags": [
"quotes",
"reference"
]
},
{
"category": "fiction",
"author": "Evelyn Waugh",
"title": "Sword of Honour",
"price": 12.99,
"tags": [
"novel",
"war"
]
},
{
"category": "fiction",
"author": "Herman Melville",
"title": "Moby Dick",
"isbn": "0-553-21311-3",
"price": 8.99,
"tags": [
"classic",
"sea"
]
},
{
"category": "fiction",
"author": "J. R. R. Tolkien",
"title": "The Lord of the Rings",
"isbn": "0-395-19395-8",
"price": 22.99,
"tags": [
"fantasy",
"classic"
]
}
],
"bicycle": {
"color": "red",
"price": 399
}
},
"expensive": 20,
"metadata": {
"generatedAt": "2026-08-07T18:46:00+03:00",
"active": true
}
}Document statistics
Objects
8
Arrays
5
Strings
24
Numbers
6
Booleans
1
Nulls
0
Nodes
44
Max depth
5
How JSONPath works
JSONPath selects nodes from a JSON value using a path that starts at the root symbol $. Child selectors move into object properties or array elements, wildcards select multiple children, slices select array ranges, and filters keep nodes that satisfy a condition.
RFC 9535 standardizes JSONPath syntax and behavior. This tester uses an RFC-focused implementation and displays normalized paths such as$['store']['book'][0]['title'] so you can see exactly where each result originated.
Descendant segments such as $..price are convenient for discovery because they search below the current node. On large documents, a more specific path before a filter or descendant selector can reduce the amount of JSON that needs to be examined.
JSONPath syntax at a glance
Child selector
$.user.nameSelect a named child property from an object.
Wildcard
$.items[*]Select every child or array element at the current level.
Array index
$.items[0]Select a specific zero-based array element.
Array slice
$.items[1:5:2]Select a range using start, end, and optional step values.
Filter
$.items[?@.price < 10]Keep child nodes that satisfy a logical comparison.
Descendants
$..idSearch descendant nodes for a matching child selector.
Useful testing workflows
API response inspection
Paste a large API response and isolate IDs, nested resources, errors, or records that satisfy a filter.
Configuration auditing
Find values distributed across nested configuration structures and confirm their normalized locations.
Query development
Build a JSONPath expression incrementally with live execution, then copy the final query into application code or test suites.
Data extraction
Export matched values or value/path pairs as JSON for a follow-up transformation or debugging workflow.
Related Xepoca tools
Frequently Asked Questions
Is the JSONPath Tester free?+
Yes. You can test JSONPath expressions, inspect matches, and download results without creating an account.
Which JSONPath syntax does Xepoca use?+
The query engine is based on RFC 9535, the standardized JSONPath specification. Core selectors, filters, slices, descendant segments, and RFC functions are supported by the underlying standards-aware package.
Are array indexes zero-based?+
Yes. JSONPath array indexes start at zero, matching JSON and JavaScript array indexing.
Can I see paths as well as values?+
Yes. Pair view shows each matched value beside its normalized JSONPath. You can also export only values or only normalized paths.
Does Xepoca upload my JSON?+
No. The document and JSONPath query are evaluated locally in your browser and are not uploaded by this tool.
Why does a valid query sometimes return no results?+
A JSONPath expression can be syntactically valid but select zero nodes because the requested property, index, slice, or filter condition does not match the current JSON document.