JSLT
Saiba mais sobre o conector JSLT e como usá-lo na Digibee Integration Platform.
O conector JSLT permite a manipulação de um JSON utilizando JSLT, uma linguagem para processamento e consulta de dados em JSON. Para mais informações, consulte a documentação oficial no GitHub.
Esse conector é útil para realizar diversas ações, como:
Modificar a estrutura de um JSON mantendo seus valores.
Adicionar, extrair e remover dados de um JSON.
Ordenar a estrutura de um JSON.
Modificar os valores contidos em um JSON por meio de funções, como manipulação de texto, cálculos matemáticos, conversões entre tipos de dados, entre outras.
Acessar e manipular dados de arrays.
Parâmetros
Dê uma olhada nos parâmetros de configuração do conector. Parâmetros suportados por expressões Double Braces estão marcados com (DB)
.
Aba General
Payload (DB)
O conteúdo JSON a ser manipulado.
{{ message.payload }}
JSON
JSLT
A declaração JSLT a ser executada.
{ *: . }
JSON
Fail On Error
Se ativado, interrompe a execução do pipeline ao ocorrer um erro. Se desativado, a execução continua, mas a propriedade "success"
será definida como false
.
False
Booleano
Raw Mode
Se esta opção estiver ativa, a expressão JSLT pode incorporar dinamicamente valores usando Double Braces ({{ }}
) em expressões inteiras, chaves de objetos ou valores. Isso permite transformações mais flexíveis e dinâmicas.
Importante: Ao usar Double Braces para uma chave JSON dentro de jsltExpr
com o Raw Mode ativado, é necessário escapar a chave. Por exemplo, para usar dinamicamente myKey
como chave, deve-se escrever "{ \"{{message.myKey}}\": .value }"
.
False
Booleano
Aba Documentation
Documentation
Campo opcional para descrever a configuração do conector e quaisquer regras de negócio relevantes.
N/A
String
Exemplos de expressões JSLT
Transposição de dados simples
Payload
{
"id" : "w23q7ca1-8729-24923-922b-1c0517ddffjf1",
"type" : "component",
"prefix": "jslt",
"myString": "test",
"myArray": [ 1, 2, 3, 4],
"boolean": true
}
JSLT
{
"uuid": .id,
"obj": {
"key-1": .type,
"key-2": .prefix
},
* - myString, myArray, id: .
}
Saída
{
"uuid" : "w23q7ca1-8729-24923-922b-1c0517ddffjf1",
"obj" : {
"key-1" : "component",
"key-2" : "jslt"
},
"type" : "component",
"prefix" : "jslt",
"boolean" : true
}
Funções nativas JSLT
Payload
{
"id" : "w23q7ca1-8729-24923-922b-1c0517ddffjf1",
"type" : "component",
"prefix": "jslt",
"myString": "TEST",
"myArray": [ 1, 2, 3, 4],
"boolean": true
}
JSLT
{
"uuid": split(.id, "-"),
"obj": {
"key-1": uppercase(.type),
"key-2": join(.myArray, lowercase(.myString))
},
* : .
}
Saída
{
"uuid" : [ "w23q7ca1", "8729", "24923", "922b", "1c0517ddffjf1" ],
"obj" : {
"key-1" : "COMPONENT",
"key-2" : "1test2test3test4"
},
"id" : "w23q7ca1-8729-24923-922b-1c0517ddffjf1",
"type" : "component",
"prefix" : "jslt",
"myString" : "TEST",
"myArray" : [ 1, 2, 3, 4 ],
"boolean" : true
}
Variáveis e funções personalizadas
Payload
{
"id" : "w23q7ca1-8729-24923-922b-1c0517ddffjf1",
"s1": "jslt",
"s2": "component"
}
JSLT
let splitted = split(.id, "-")
let size = size($splitted)
def concat(s1, s2)
if ($s1 != null)
$s1 + "___" + $s2
else
""
{
"variables": $splitted,
"size": $size,
"customFunction": concat(.s1, .s2)
}
Saída
{
"variables": [
"w23q7ca1",
"8729",
"24923",
"922b",
"1c0517ddffjf1"
],
"size": 5,
"customFunction": "jslt___component"
}
Operadores If e For
Payload
{
"id" : "w23q7ca1-8729-24923-922b-1c0517ddffjf1",
"status": true
}
JSLT
let aux = split(.id, "-")
def concat(string1, string2)
$string1 + "-" + $string2
{
"forResult": [for ($aux) concat("test", .)],
"ifResult": if (.status)
size(.id)
else
0
}
Saída
{
"forResult" : [ "test-w23q7ca1", "test-8729", "test-24923", "test-922b", "test-1c0517ddffjf1" ],
"ifResult" : 38
}
Expressões dinâmicas com o Raw Mode
Quando o Raw Mode está ativado, você pode construir partes da sua expressão JSLT dinamicamente usando Double Braces ({{ }}
).
Atualizado
Isto foi útil?