Connect

jmespath

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

Try out Bloblang

For better performance and improved capabilities try native Redpanda Connect mapping with the mapping processor.

  • Common

  • Advanced

processor:
  label: ""
  jmespath:
    query: "" # No default (required)
processor:
  label: ""
  jmespath:
    query: "" # No default (required)

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