Developer Tools
JMESPath Tester
Test JMESPath expressions against any JSON in your browser. Filters, projections, multi-select, pipes, and AWS CLI --query style results.
Examples (click to use)
Parsing and evaluation run entirely in your browser. Nothing you paste leaves your device.
Quick syntax
- a.b.c sub-expression chain
- [0], [-1] array index
- [0:5:2] slice with start, stop, step
- [*] array projection, .* object value projection
- [] flatten one level of nested arrays
- [?expr] filter projection
- {a: foo, b: bar} multi-select hash
- [foo, bar] multi-select list
- | pipe collapses projections
- ==, !=, <, <=, >, >= comparators
- &&, ||, ! boolean logic
- `literal` JSON literal, 'string' raw string
Built-in functions
abs, ceil, floor, sum, avg, min, max, length, keys, values, sort, sort_by, reverse, contains, starts_with, ends_with, join, type, to_string, to_number, not_null, map, max_by, min_by, merge
sort_by, min_by, max_by, and map take an expression reference as the last argument: write sort_by(@, &name) to sort an array by the name field.
How to use
- Paste your JSON document into the input on the left, or click Load sample to start with a small AWS-style describe-instances example.
- Type a JMESPath expression in the field at the top, or click any example chip (Total count, All instance IDs, Running IDs, Sort by CPU, and more) to insert one.
- Read the result panel on the right. The type badge tells you whether the result is an array, object, string, number, boolean, or null, and the length badge shows the size of arrays, objects, and strings.
- Switch the indent (Compact, 2 spaces, or 4 spaces) to control how the result is pretty-printed, then copy the result for use in a shell pipeline, script, or configuration file.
- Use the syntax and built-in function reference at the bottom to look up projections, filters, multi-select hashes, pipes, sort_by, contains, and the &expr expression-reference syntax.
About this tool
JMESPath Tester evaluates JMESPath expressions against any JSON document directly in your browser. JMESPath is the query language baked into the AWS CLI's --query flag, Boto3's paginators, Ansible's json_query filter, the AWS Encryption SDK policies, JMESPath community libraries for Python, Go, Ruby, Rust, JavaScript, and many cloud configuration tools that need to pull fields from deeply nested API responses. Paste any JSON payload on the left, type an expression at the top, and the tool reports the resolved value with its type, length, and a copy button so you can lift the result into a script, a shell pipeline, or a configuration template. The evaluator implements the practical JMESPath grammar shared by jmespath.org and the official jmespath.py, jmespath.js, and go-jmespath reference parsers: sub-expressions with dot navigation, index expressions including negative indexes, slices with start, stop, and step, wildcard projections on objects (.*) and arrays ([*]), flatten projections ([]) that descend into nested lists, filter projections ([?expr]) with full comparison and boolean predicates, multi-select lists ([a, b, c]) and multi-select hashes ({a: foo, b: bar}) for reshaping results, pipe expressions (|) for collapsing projections and chaining queries, raw string literals in single quotes ('value'), and JSON literals in backticks (`{"key": 1}`). Comparators ==, !=, <, <=, >, >= and boolean operators &&, ||, ! (with short-circuit evaluation) work inside filters and at the top level. The built-in function library covers abs, ceil, floor, sum, avg, min, max, length, keys, values, sort, sort_by, reverse, contains, starts_with, ends_with, join, type, to_string, to_number, not_null, map, max_by, min_by, and merge; expression-reference arguments use the &expr syntax (write sort_by(@, &name) to sort an array by its name field). The example library covers the moves you actually need in practice: read a top-level field, project IDs across a nested cloud response with [], filter running EC2 instances by state, reshape each item into a multi-select hash, sort by an expression reference, aggregate with max, index directly, and collapse a projection with a pipe. Useful for poking at AWS CLI output without re-running expensive describe-instances calls, validating JMESPath queries used in Ansible playbooks, debugging Step Functions Pass states, drafting policies for the AWS Encryption SDK, building Terraform jsondecode lookups, prototyping queries you will hand off to jmespath.py or jmespath.js code, and testing Boto3 paginator filters. Parsing, JSON validation, and JMESPath evaluation all run locally; the API responses, configuration JSON, fixture data, and private documents you query here never leave your device.
Free to use. Works in your browser. No signup, no login.
Related tools
You may also like
JSONPath Tester
Evaluate JSONPath queries with filters, regex, and recursive descent.
Open tool
DeveloperJSON Formatter
Format, minify, and validate JSON in your browser.
Open tool
DeveloperJSON Validator
Strict JSON validation with line and column errors and human-readable hints.
Open tool
DeveloperJSON Flatten Unflatten
Two-way converter between nested JSON and path-keyed flat JSON.
Open tool
DeveloperRegex Tester
Live regex testing with highlights, capture groups, and replacement preview.
Open tool