As funções foram criadas para:

  • acelerar ainda mais a criação das suas integrações

  • diminuir a complexidade dos seus pipelines

  • simplificar conversões e transformações dos dados durante o fluxo dos seus pipelines

As funções de JSON realizam operações em objetos do tipo JSON e estão disponíveis para componentes que suportam expressões com Double Braces. Para saber como passar informações para os componentes utilizando esse recurso, clique aqui.

JSONPATH

Essa função em Double Braces retorna partes de um determinado documento conforme a expressão enviada.

Sintaxe

JSONPATH(value:string, expression:string) 

value: string

expression: string contendo a expressão a ser recuperada

Digamos que você precise obter parte de um documento utilizando expressões. Você pode fazer o seguinte:

{
"test": {{ JSONPATH ({"store":{"book":[{"category":"reference","author":"Nigel Rees","title":"Sayings of the Century","price":8.95},{"category":"fiction","author":"Evelyn Waugh","title":"Sword of Honour","price":12.99},{"category":"fiction","author":"Herman Melville","title":"Moby Dick","isbn":"0-553-21311-3","price":8.99},{"category":"fiction","author":"J. R. R. Tolkien","title":"The Lord of the Rings","isbn":"0-395-19395-8","price":22.99}],"bicycle":{"color":"red","price":19.95}},"expensive":10}, "$.store.book[?(@.price > 10)]") }}
"test2": {{ JSONPATH (["aa","ss","","e"],"$.[0]" ) }}
}

O resultado esperado será:

{
"test": [{"category":"fiction","author":"Evelyn Waugh","title":"Sword of Honour","price":12.99},{"category":"fiction","author":"J. R. R. Tolkien","title":"The Lord of the Rings","isbn":"0-395-19395-8","price":22.99}]
"test2": "aa"
}

É possível utilizar as próprias funções que o JSONPATH provê internamente, tais como:

  • min()

  • max()

  • avg()

  • stddev()

  • length

Exemplo:

Suponha que um array de entrada seja recebido:

{
"numbers": [1,33,56,77.8,66,10475,665464,1,0.01]
}

E que você queira utilizar as funções descritas acima no campo “expression”:

{
"min": {{ JSONPATH(message.numbers, "$.min()") }},
"max": {{ JSONPATH(message.numbers, "$.max()") }},
"avg": {{ JSONPATH(message.numbers, "$.avg()") }},
"stddev": {{ JSONPATH(message.numbers, "$.stddev()") }},
"length": {{ JSONPATH(message.numbers, "$.length()") }}
}

O resultado será:

{
"min": 0.01,
"max": 665464.0
"avg": 75130.42333333334,
"stddev": 208739.83034832493,
"length": 9
}

TOJSON

Essa função em Double Braces retorna o valor do JSON a partir do objeto recebido.

Sintaxe

TOJSON(value:string)

value: string

Digamos que você precise obter os valores em um objeto JSON. Você pode fazer o seguinte:

{
"test": {{ TOJSON("aaS2fdeS") }}
"test2": {{ TOJSON(111) }}
"test3": {{ TOJSON("false") }}
"test4": {{ TOJSON([{"c":123}]) }}
"test5": {{ TOJSON({"a":123,"array":[1,2,3]}) }}
"test6": {{ TOJSON("{\"name\":\"John\",\"age\":31,\"city\":\"New York\"}") }}
"test7": {{ TOJSON(null) }}
}

O resultado esperado será:

{
"test": "aaS2fdeS"
"test2": 111
"test3": false
"test4": [{"c":123}]
"test5": {"a":123,"array":[1,2,3]}
"test6": {"name":"John","age":31,"city":"New York"}
"test2": null
}

UNESCAPEJSON

Essa função em Double Braces retorna um JSON removendo os escapes encontrados no valor fornecido.

Sintaxe

UNESCAPE(value:string)

value: string

Digamos que você precise remover caracteres de escape. Você pode fazer o seguinte:

{
"test": {{ UNESCAPE ("{\\\"name\\\":\\\"John\\\",\\\"age\\\":31,\\\"city\\\":\\\"New York\\\"}") }}
}

O resultado esperado será:

{
"test": "{\"name\":\"John\",\"age\":31,\"city\":\"New York\"}"
}

GETELEMENTAT

Essa função permite que você capture um elemento específico de um array.

Sintaxe

GETELEMENTAT(array, índice)

Vamos supor que você precise capturar o primeiro elemento do array abaixo:

{
"data": [
{
"field": "value-1"
},
{
"field": "value-2"
},
{
"field": "value-3"
}
]
}

Capturando o elemento:

{
"element": {{ GETELEMENTAT(message.data, 0) }}
}

O resultado será:

{
"element": {
"field": "value-1"
}
}

Se a função receber um índice inexistente, o valor null será retornado.

LASTELEMENT

Essa função permite que você capture o último elemento de um array.

Sintaxe

LASTELEMENT(array)

Vamos supor que você precise capturar o último elemento do array abaixo:

{
"data": [
{
"field": "value-1"
},
{
"field": "value-2"
},
{
"field": "value-3"
}
]
}

Capturando o elemento:

{
"element": {{ LASTELEMENT(message.data) }}
}

O resultado será:

{
"element": {
"field": "value-3"
}
}

Se a função receber um array vazio, o valor null será retornado.

ARRAYTOOBJECT

Essa função permite que você converta um array em um objeto.

Sintaxe

ARRAYTOOBJECT(array)

Vamos supor que você precise converter o array abaixo:

{
"data": [
{
"value": "ABC"
},
{
"value": 123
}
]
}

Convertendo:

{
"object": {{ ARRAYTOOBJECT(message.data) }}
}

O resultado será:

{
"object": {
"value": "ABC"
}
}

A função sempre fará a conversão considerando apenas o primeiro elemento do array.

Se o parâmetro da função receber qualquer outra estrutura de dados diferente de array, nenhuma conversão será aplicada e os dados de entrada serão retornados. No caso de um array vazio, o valor null será retornado.

OBJECTTOARRAY

Essa função permite que você converta um objeto e estruturas primitivas de dados em um array.

Sintaxe

OBJECTTOARRAY(object)

Vamos supor que você precise converter o objeto e a string abaixo:

{
"data": {
"value": "ABC"
},
"string": "text value"
}

Convertendo:

{
"array-data": {{ OBJECTTOARRAY(message.data) }}
"array-string": {{ OBJECTTOARRAY(message.string) }}
}

O resultado será:

{
"array-data": [
{
"value": "ABC"
}
],
"array-string": [ "text value" ]
}

Se o parâmetro da função receber um array, nenhuma conversão será aplicada e os dados de entrada serão retornados. No caso de um objeto vazio ou nulo, um array vazio será retornado.

NEWEMPTYOBJECT

Essa função permite que você crie um novo objeto vazio.

Sintaxe

NEWEMPTYOBJECT()

Vamos supor que você precise criar um novo objeto vazio:

{
"data": { }
}

Criando:

{
"data": {{ NEWEMPTYOBJECT() }}
}

O resultado será:

{
"data": { }
}

Conheça também as funções:

Encontrou sua resposta?