Jolt
1. Visão Geral
O componente Jolt (jolt-connector) transforma um JSON em outro formato de JSON, usando uma especificação de transformação na linguagem Jolt (bastante usada para mapear estruturas de dados entre sistemas diferentes).
Use quando o fluxo precisa reestruturar um JSON — renomear campos, mudar hierarquia, combinar ou dividir listas — sem escrever código customizado. Para transformações simples (poucos campos), o Add Variable pode ser mais simples de manter.
2. Pré-requisitos
Não há credenciais externas — processamento local.
3. Autenticação e Conexão
Não aplicável.
4. Configuração / Operações Suportadas
O componente tem uma única operação: transformar um JSON usando uma spec Jolt.
| Campo | Obrigatório | Tipo | Descrição | Exemplo |
|---|---|---|---|---|
json | Sim | Texto (JSON) | O dado de entrada a ser transformado. | {"nomeCompleto": "Maria Silva"} |
joltExpression | Sim | Texto (JSON, spec Jolt) | A especificação Jolt que define como transformar o json de entrada. | Uma spec Jolt (formato shift, default, etc.) |
5. Exemplos Práticos
Exemplo simples: renomear um campo de um JSON recebido.
Entrada (não usada diretamente — os dados vêm do campo json da configuração):
{
"clienteBruto": { "nomeCompleto": "Maria Silva", "emailContato": "maria@exemplo.com" }
}
Configuração do componente:
{
"componentName": "jolt-connector",
"configurations": {
"json": "{$.body.clienteBruto}",
"joltExpression": "[{\"operation\": \"shift\", \"spec\": {\"nomeCompleto\": \"nome\", \"emailContato\": \"email\"}}]"
}
}
Resposta:
{
"response": {
"nome": "Maria Silva",
"email": "maria@exemplo.com"
}
}
Exemplo avançado: reestruturar uma lista de pedidos, extraindo apenas os campos necessários de cada item.
Entrada:
{
"pedidos": [
{ "idPedido": 981, "cliente": { "nome": "Maria Silva" }, "valorTotal": 150.00 },
{ "idPedido": 982, "cliente": { "nome": "João Souza" }, "valorTotal": 89.90 }
]
}
Configuração do componente:
{
"componentName": "jolt-connector",
"configurations": {
"json": "{$.body.pedidos}",
"joltExpression": "[{\"operation\": \"shift\", \"spec\": {\"*\": {\"idPedido\": \"[&1].id\", \"cliente.nome\": \"[&1].clienteNome\", \"valorTotal\": \"[&1].valor\"}}}]"
}
}
Resposta:
{
"response": [
{ "id": 981, "clienteNome": "Maria Silva", "valor": 150.00 },
{ "id": 982, "clienteNome": "João Souza", "valor": 89.90 }
]
}
6. Erros Comuns e Troubleshooting
| Erro / Sintoma | Causa provável | Como resolver |
|---|---|---|
| "Required field 'json' is missing or null." | O campo json não foi preenchido. | Preencher json com os dados a transformar. |
| "Required field 'joltExpression' is missing or null." | O campo joltExpression não foi preenchido. | Preencher joltExpression com a spec de transformação. |
| "Error during JOLT transformation: ..." | A spec Jolt está malformada, ou não é compatível com a estrutura do JSON de entrada. | Revisar a sintaxe da spec Jolt e testá-la com os dados reais de entrada. |
| Resultado não tem o formato esperado | A spec Jolt não cobre todos os casos do JSON de entrada (por exemplo, campos ausentes em alguns itens). | Ajustar a spec Jolt para tratar variações nos dados de entrada. |