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
- Mapping
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(', ', @)}"