Jolt
1. Visión General
El componente Jolt (jolt-connector) transforma un JSON en otro formato de JSON, usando una especificación de transformación en el lenguaje Jolt (bastante usado para mapear estructuras de datos entre sistemas diferentes).
Úsalo cuando el flujo necesita reestructurar un JSON — renombrar campos, cambiar la jerarquía, combinar o dividir listas — sin escribir código personalizado. Para transformaciones simples (pocos campos), Add Variable puede ser más sencillo de mantener.
2. Prerrequisitos
No hay credenciales externas — procesamiento local.
3. Autenticación y Conexión
No aplica.
4. Configuración / Operaciones Soportadas
El componente tiene una única operación: transformar un JSON usando una spec Jolt.
| Campo | Obligatorio | Tipo | Descripción | Ejemplo |
|---|---|---|---|---|
json | Sí | Texto (JSON) | El dato de entrada que será transformado. | {"nomeCompleto": "Maria Silva"} |
joltExpression | Sí | Texto (JSON, spec Jolt) | La especificación Jolt que define cómo transformar el json de entrada. | Una spec Jolt (formato shift, default, etc.) |
5. Ejemplos Prácticos
Ejemplo simple: renombrar un campo de un JSON recibido.
Entrada (no usada directamente — los datos vienen del campo json de la configuración):
{
"clienteBruto": { "nomeCompleto": "Maria Silva", "emailContato": "maria@ejemplo.com" }
}
Configuración del componente:
{
"componentName": "jolt-connector",
"configurations": {
"json": "{$.body.clienteBruto}",
"joltExpression": "[{\"operation\": \"shift\", \"spec\": {\"nomeCompleto\": \"nome\", \"emailContato\": \"email\"}}]"
}
}
Respuesta:
{
"response": {
"nome": "Maria Silva",
"email": "maria@ejemplo.com"
}
}
Ejemplo avanzado: reestructurar una lista de pedidos, extrayendo solo los campos necesarios de cada ítem.
Entrada:
{
"pedidos": [
{ "idPedido": 981, "cliente": { "nome": "Maria Silva" }, "valorTotal": 150.00 },
{ "idPedido": 982, "cliente": { "nome": "João Souza" }, "valorTotal": 89.90 }
]
}
Configuración del componente:
{
"componentName": "jolt-connector",
"configurations": {
"json": "{$.body.pedidos}",
"joltExpression": "[{\"operation\": \"shift\", \"spec\": {\"*\": {\"idPedido\": \"[&1].id\", \"cliente.nome\": \"[&1].clienteNome\", \"valorTotal\": \"[&1].valor\"}}}]"
}
}
Respuesta:
{
"response": [
{ "id": 981, "clienteNome": "Maria Silva", "valor": 150.00 },
{ "id": 982, "clienteNome": "João Souza", "valor": 89.90 }
]
}
6. Errores Comunes y Troubleshooting
| Error / Síntoma | Causa probable | Cómo resolverlo |
|---|---|---|
| "Required field 'json' is missing or null." | El campo json no fue completado. | Completar json con los datos a transformar. |
| "Required field 'joltExpression' is missing or null." | El campo joltExpression no fue completado. | Completar joltExpression con la spec de transformación. |
| "Error during JOLT transformation: ..." | La spec Jolt está malformada, o no es compatible con la estructura del JSON de entrada. | Revisar la sintaxis de la spec Jolt y probarla con los datos reales de entrada. |
| El resultado no tiene el formato esperado | La spec Jolt no cubre todos los casos del JSON de entrada (por ejemplo, campos ausentes en algunos ítems). | Ajustar la spec Jolt para contemplar variaciones en los datos de entrada. |