What is a JSONPath Evaluator?
A JSONPath Evaluator is an interactive query testing and node extraction tool designed to evaluate RFC 9535 / Stefan Gรถssner JSONPath expressions against complex JSON documents. Analogous to what XPath is for XML documents, JSONPath provides a standardized, expressive path query language for navigating, filtering, and plucking discrete properties, sub-arrays, and nested values from multi-level JSON structures.
A JSONPath query begins at the root identifier ($) and uses property navigation operators (.property), bracket indexers ([0]), wildcards (*), recursive descent navigators (..), array slices ([0:2]), and boolean filter expressions ([?(@.price < 10)]) to query nodes. Our evaluator executes JSONPath queries client-side in real time, reports exact match counts, and displays formatted results instantly.
Why Software Developers, QA Engineers & API Architects Need JSONPath
JSONPath is ubiquitous across modern development tooling and automated test pipelines:
- API Contract & Integration Testing (Postman, REST Assured, Karate): Writing concise test assertions on specific JSON response fields without unmarshaling full payload trees (e.g.
pm.expect(pm.response.json()).to.have.jsonPath("$.data.user.id")). - Kubernetes `kubectl` Output Formatting: Querying specific container configurations and pod status metrics from Kubernetes clusters using
kubectl get pods -o jsonpath='{.items[*].metadata.name}'. - Cloud Event Routing & AWS Step Functions: Filtering serverless event payloads in AWS EventBridge and AWS Step Functions input/output data path mappings.
- Log Telemetry & CI/CD Pipelines (GitHub Actions, GitLab CI): Extracting release artifact URLs or dependency versions from package manifests and release metadata JSON.
Step-by-Step Query Execution Example
The following real-world example demonstrates how a bookstore catalog is queried to extract all fiction books priced under $10 using filter expressions.
Input: Canonical Bookstore JSON Document
{
"store": {
"book": [
{
"category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
},
{
"category": "fiction",
"author": "Evelyn Waugh",
"title": "Sword of Honour",
"price": 12.99
},
{
"category": "fiction",
"author": "Herman Melville",
"title": "Moby Dick",
"isbn": "0-553-21311-3",
"price": 8.99
}
]
}
}
Query Expression: `$.store.book[?(@.price < 10)]`
Output: Matched JSON Nodes (2 Books Found)
[
{
"category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
},
{
"category": "fiction",
"author": "Herman Melville",
"title": "Moby Dick",
"isbn": "0-553-21311-3",
"price": 8.99
}
]
RFC 9535 JSONPath Syntax Reference Table
The table below outlines core JSONPath syntax operators and selectors supported by modern engines:
$: Root object or array context.@: Current item being evaluated inside a filter expression predicate..property: Dot-notated child property selector.['property']: Bracket-notated child property selector (supports special characters & spaces).*: Wildcard matching all elements or properties at current level...: Deep scan / recursive descent operator (scans entire document tree).[start:end:step]: Python-style array slice selector.[0, 1, 3]: Union of multiple array indices or property names.[?(filter)]: Filter expression predicate evaluating a boolean comparison on current item.
Programmatic JSONPath Libraries across Programming Languages
If you need to execute JSONPath queries inside backend microservices:
- JavaScript / Node.js: Use
jsonpath-plusorjsonpathnpm packages. - Java: Use Jayway's
com.jayway.jsonpath:json-pathlibrary. - Python: Use
jsonpath-ngor standardjmespath. - Go: Use
github.com/oliveagle/jsonpathor client-go jsonpath packages.
JSONPath vs. XPath vs. JMESPath vs. jq
Developers often choose between query languages based on their runtime requirements:
- JSONPath (RFC 9535): Universal standard for node addressing and simple filtering. Supported natively in Java (Jayway), Postman assertions, and Kubernetes tooling.
- jq: Powerful stream processing command-line DSL with rich transformation, reduction, and reshaping capabilities.
- JMESPath: Declarative JSON query language adopted natively by the AWS CLI and AWS Boto3 SDK for filtering AWS resource descriptions.
Kubernetes `kubectl` JSONPath Output Formatting
In Kubernetes cluster management, JSONPath extracts exact container specifications without parsing full YAML descriptors:
# Extract all container images running in default namespace
kubectl get pods -o jsonpath='{.items[*].spec.containers[*].image}'
# Extract InternalIP of all nodes in cluster
kubectl get nodes -o jsonpath='{.items[*].status.addresses[?(@.type=="InternalIP")].address}'
100% Client-Side Privacy & Air-Gapped Security Guarantee
Evaluating JSONPath queries against confidential user records, payment authorization tokens, or internal Kubernetes manifests demands complete confidentiality.
JSON Empire guarantees zero data leakage:
- All AST querying, filter parsing, and node extraction run 100% locally on your computer's CPU.
- Zero HTTP network requests are made. No JSON data ever leaves your web browser.
- Works completely offline and in air-gapped corporate enterprise environments.
Frequently Asked Questions
What is the difference between `$.store.book[*]` and `$..author`?
$.store.book[*] performs shallow navigation into the book array, whereas $..author performs deep recursive descent through the entire document tree to find all keys named author.
How do filter predicates like `[?(@.price < 10)]` work?
The @ symbol references each individual array item. The engine evaluates whether the item's price property is numerically less than 10, retaining only matching elements in the result set.
How can I download the evaluated JSON results?
Click the "๐พ Download .json" button in the workspace panel to save matched nodes directly to a JSON file on your disk.