get_jmespath

Description

Process an object or array expression using a query written in the JMESPath query language. This function provides advanced functionality to extract, filter, and manipulate object or array data. Below we provide a few basic examples of how to use the JMESPath query language. See the JMESPath Tutorial in the JMESPath documentation for more information.

Note: for use cases that do not require the advanced features of JMESPath, see get_field and get_item.

Return type

variant

Domain

This is a scalar function (calculates a single output value for a single input row.)

Categories

Usage

get_jmespath(value, query)

Argument

Type

Optional

Repeatable

Restrictions

value

storable

no

no

none

query

string

no

no

constant

Examples

make_col value:get_jmespath(arr, "[*].value")

Flatten an array of objects by selecting the specific key “value” out of the objects, creating a new array for the results. For example, given input [{"key":"a", "value":"b"}, {"key":"c", "value":"d"}], this get_jmespath() expression returns ["b", "d"].

make_col value:get_jmespath(arr, "[?state=='running'].name")

Filter an array of objects and return the name of the objects whose field state has value "running". For example, the following input returns ["app2", "app3"]:

[
    {
        "name": "app1",
        "state": "idle"
    },
    {
        "name": "app2",
        "state": "running"
    },
    {
        "name": "app3",
        "state": "running"
    }
]