Transformer (JOLT)
Know the component and how to use it.
Transformer (JOLT) allows the manipulation of a JSON through JOLT technology.
The component is useful to:
- modify the structure of a JSON and keep its values;
- add, extract and remove data from a JSON;
- sort the structure of a JSON;
- modify the values contained in a JSON through functions, such as text manipulation, mathematical calculations, conversions between data types, among others;
- access and manipulate data from arrays.
Take a look at the configuration parameters of the component:
- Type Properties: area to include the JOLT transformations.
Example of a configured Transformer (JOLT):

IMPORTANT: the JSON configured in Type Properties doesn’t represent the JSON to be manipulated, but the JOLT transformation itself. The JOLT itself uses a JSON structure for the transformation construction, which will interpret the JSON received by the Transformer (JOLT) component.
Used to change the structure of a JSON, keeping the values contained in that same JSON.
Example:
Input
{
"body": {
"userName": "John"
}
}
Transformation
[
{
"operation": "shift",
"spec": {
"body": {
"userName": "data.user_name"
}
}
}
]
Output
{
"data" : {
"user_name" : "John"
}
}
Used to add new fields or objects in a JSON, if they don't already exist.
Example:
Input
{
"body": {
"userName": "John"
}
}
Transformation
Output
Used to remove fields or objects from a JSON.
Example:
Input
Transformation
[
{
"operation": "remove",
"spec": {
"body": {
"email": ""
}
}
}
]
Output
{
"body" : {
"userName" : "John"
}
}
Used to sort fields and objects in a JSON, in alphabetical order.
Example:
Input
{
"employee": {
"phone": "999999999",
"name": "Sort Employee",
"birthDate": "1980-01-01",
"role": "analyst"
}
}
Transformation:
[
{
"operation": "sort"
}
]
Output
{
"employee" : {
"birthDate" : "1980-01-01",
"name" : "Sort Employee",
"phone" : "999999999",
"role" : "analyst"
}
}
Used to transform simple fields and objects into arrays and vice-versa.
Example:
Input
{
"products": {
"name": "Product A",
"id": "123-A",
"value": 10
}
}
Transformation
[
{
"operation": "cardinality",
"spec": {
"products": "MANY"
}
}
]
Output
{
"products" : [ {
"name": "Product A",
"id": "123-A",
"value": 10
} ]
}
Used to add values and apply functions to a JSON.
Example:
Input
{
"products": [
{
"name": "Product A",
"price": 10
},
{
"name": "Product B",
"price": 20
}
]
}
Transformation
[
{
"operation": "modify-default-beta",
"spec": {
"products": {
"*": {
"manufacturer": "Manufacturer default"
}
}
}
}
]
Output
{
"products" : [ {
"name" : "Produto A",
"price" : 10,
"manufacturer": "Manufacturer default"
}, {
"name" : "Produto B",
"price" : 20,
"manufacturer": "Manufacturer default"
} ]
}
Used to override values and apply functions to a JSON.
Example:
Input
{
"data": {
"firstName": "John",
"lastName": "Smith"
}
}
Transformation
[
{
"operation": "modify-overwrite-beta",
"spec": {
"data": {
"fullName": "=concat(@(1,firstName),' ',@(1,lastName))"
}
}
}
]
Output
{
"data" : {
"firstName" : "John",
"lastName" : "Smith",
"fullName" : "John Smith"
}
}
Last modified 3mo ago