Transformer (JOLT)

Discover more about the Transformer (JOLT) component and how to use it on the Digibee Integration Platform.

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, and conversions between data types, among others;

  • access and manipulate data from arrays.

Learn more about JOLT applications.

Parameters

Take a look at the configuration options for the component. Parameters supported by Double Braces expressions are marked with (DB).

Parameter
Description
Default value
Data type

Type Properties

Area to include the JOLT transformations.

N/A

String

Example of a configured Transformer (JOLT):

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.

JOLT operations

Shift

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"  
    }
}

Default

Used to add new fields or objects in a JSON, if they don't already exist.

Example:

Input

{  
    "body": {    
        "userName": "John"  
    }
}

Transformation

[
  {
    "operation": "default",
    "spec": {
      "body": {
        "email": "[email protected]"
      }
    }
  }
]

Output

{  
    "body": {    
        "userName": "John",    
        "email": "[email protected]"  
    }
}

Remove

Used to remove fields or objects from a JSON.

Example:

Input

{  
    "body": {    
        "userName": "John",    
        "email": "[email protected]"  
    }
}

Transformation

[
  {
    "operation": "remove",
    "spec": {
      "body": {
        "email": ""
      }
    }
  }
]

Output

{  
    "body" : {    
        "userName" : "John"  
    }
}

Sort

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"
  }
}

Cardinality

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
  } ]
}

Modify-default-beta

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"
  } ]
}

Modify-overwrite-beta

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"
  }
}

Click here to read a detailed article about Transformer (JOLT).

Last updated

Was this helpful?