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 native Redpanda Connect 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(', ', @)}"