The case node
Evaluates a series of lambda expressions in a top down manner.
- The node will output / add the corresponding value of the first lambda expression that evaluates as true.
- If none of the lambda expressions evaluate as true, a default value will be used
The case node works in a similar way CASE expressions in SQL work.
Example
|case(
lambda: "data.condition.name" == 'OK',
lambda: "data.condition.name" == 'Warning',
lambda: "data.condition.name" == 'Error'
)
.values(
'{"cond": "Everything OK!"}',
'{"cond": "Oh, oh, a Warning!"}',
'{"cond": "Damn, Error!"}'
)
.json()
.as('data')
.default('{"cond": "Nothing matched!!!"}')
Parameters
Parameter | Description | Default |
---|---|---|
[node] lambdas( lambda_list ) |
list of lambda expressions | |
values( string_list\|text_list ) |
corresponding values | |
json( is_set ) |
if set, will treat the values and default parameters as json strings |
false, not set |
as (string ) |
field-path for the output value | |
default(any ) |
default value to use, if no case clause matches |