Skip to main content

jmespath

Executes a JMESPath query on JSON documents and replaces the message with the resulting document.

# Config fields, showing default values
label: ""
jmespath:
query: "" # No default (required)
Try out Bloblang

For better performance and improved capabilities try out native Expanso Edge mapping with the mapping processor.

Fields

query

The JMESPath query to apply to messages.

Type: string

Examples

When receiving JSON documents of the form:

{
"locations": [
{"name": "Seattle", "state": "WA"},
{"name": "New York", "state": "NY"},
{"name": "Bellevue", "state": "WA"},
{"name": "Olympia", "state": "WA"}
]
}

We could collapse the location names from the state of Washington into a field Cities:

{"Cities": "Bellevue, Olympia, Seattle"}

With the following config:

pipeline:
processors:
- jmespath:
query: "locations[?state == 'WA'].name | sort(@) | {Cities: join(', ', @)}"