DEV Community

Sadiul Hakim
Sadiul Hakim

Posted on

Java JOLT built in functions

  • =intSum
  • =doubleSum
  • =toString
  • =toInteger
  • =toLong
  • =toDouble
  • =toBoolean
  • =size, '=sort'
  • =join
  • =substring
  • =abs, =avg, =min, '=max'

These functions work only inside modify-overwrite-beta or modify-default-beta operations.


1. JOLT Modify Operations Overview

There are two modify operations:

1. modify-overwrite-beta

  • Replaces the existing value
  • Can use functions (=intSum, =multiply, etc.)
  • Used for math/string/date transformations

2. modify-default-beta

  • Only sets value if missing
  • Good for default initialization

How to use functions?

Syntax:

"fieldName": "=functionName(arg1, arg2, ...)"
Enter fullscreen mode Exit fullscreen mode

Arguments can be:

  • Literal values
  • JSON values referenced via @(n,key)
  • Other function outputs

--------------------------------------

2. MATH FUNCTIONS

--------------------------------------

2.1 =intSum, =doubleSum

Add multiple numbers.

Input

{
  "price": 100,
  "tax": 15
}
Enter fullscreen mode Exit fullscreen mode

Spec

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "total": "=intSum(@(1,price), @(1,tax))"
    }
  }
]
Enter fullscreen mode Exit fullscreen mode

Output

{
  "price": 100,
  "tax": 15,
  "total": 115
}
Enter fullscreen mode Exit fullscreen mode

2.2 =abs

Input

{
  "num": -12.7
}
Enter fullscreen mode Exit fullscreen mode

Spec

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "absVal": "=abs(@(1,num))",

    }
  }
]
Enter fullscreen mode Exit fullscreen mode

Output

{
  "num": -12.7,
  "absVal": 12.7,
}
Enter fullscreen mode Exit fullscreen mode

--------------------------------------

3. STRING FUNCTIONS

--------------------------------------

3.1 =toString

Input

{
  "id": 42
}
Enter fullscreen mode Exit fullscreen mode

Spec

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "idString": "=toString(@(1,id))"
    }
  }
]
Enter fullscreen mode Exit fullscreen mode

Output

{
  "id": 42,
  "idString": "42"
}
Enter fullscreen mode Exit fullscreen mode

3.2 =join (concatenate strings)

Input

{
  "first": "John",
  "last": "Wick"
}
Enter fullscreen mode Exit fullscreen mode

Spec

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "fullName": "=join(' ', @(1,first), @(1,last))"
    }
  }
]
Enter fullscreen mode Exit fullscreen mode

Output

{
  "first": "John",
  "last": "Wick",
  "fullName": "John Wick"
}
Enter fullscreen mode Exit fullscreen mode

3.3 =substring

Syntax:

"field": "=substring(value, startIndex, endIndex)"
Enter fullscreen mode Exit fullscreen mode

Input

{
  "code": "ABCDEF"
}
Enter fullscreen mode Exit fullscreen mode

Spec

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "sub": "=substring(@(1,code), 1, 4)"
    }
  }
]
Enter fullscreen mode Exit fullscreen mode

Output

{
  "code": "ABCDEF",
  "sub": "BCD"
}
Enter fullscreen mode Exit fullscreen mode

--------------------------------------

4. TYPE CASTING FUNCTIONS

--------------------------------------

=toInteger, =toLong, =toDouble, =toBoolean

Input

{
  "price": "100",
  "pi": "3.14",
  "flag": "true"
}
Enter fullscreen mode Exit fullscreen mode

Spec

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "priceInt": "=toInteger(@(1,price))",
      "piDouble": "=toDouble(@(1,pi))",
      "flagBool": "=toBoolean(@(1,flag))"
    }
  }
]
Enter fullscreen mode Exit fullscreen mode

Output

{
  "price": "100",
  "pi": "3.14",
  "flag": "true",
  "priceInt": 100,
  "piDouble": 3.14,
  "flagBool": true
}
Enter fullscreen mode Exit fullscreen mode

--------------------------------------

5. ARRAY FUNCTIONS

--------------------------------------

=size()

Input

{
  "items": ["a", "b", "c"]
}
Enter fullscreen mode Exit fullscreen mode

Spec

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "count": "=size(@(1,items))"
    }
  }
]
Enter fullscreen mode Exit fullscreen mode

Output

{
  "items": ["a", "b", "c"],
  "count": 3
}
Enter fullscreen mode Exit fullscreen mode

=sort()

Input

{
  "items": [5, 3, 2, 4]
}
Enter fullscreen mode Exit fullscreen mode

Spec

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "sorted": "=sort(@(1,items))"
    }
  }
]
Enter fullscreen mode Exit fullscreen mode

Output

{
  "items": [5, 3, 2, 4]
  "sorted": [2,3,4,5]
}
Enter fullscreen mode Exit fullscreen mode

--------------------------------------

6. CHAINING MULTIPLE FUNCTIONS

--------------------------------------

Example:

Take a string "100", convert to int, add tax, then format as text.

Input

{
  "value": "100"
}
Enter fullscreen mode Exit fullscreen mode

Spec

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "final": "=join(' USD', intSum(toInteger(@(1,value)), 15))"
    }
  }
]
Enter fullscreen mode Exit fullscreen mode

Output

{
  "value": "100",
  "final": "115 USD"
}
Enter fullscreen mode Exit fullscreen mode

--------------------------------------

7. MASTER LIST — All JOLT Functions

--------------------------------------

Math

=abs
=avg
=min
=max
=intSum
=doubleSum
Enter fullscreen mode Exit fullscreen mode

String

=join
=toString
=substring
Enter fullscreen mode Exit fullscreen mode

Casting

=toInteger
=toLong
=toDouble
=toBoolean
Enter fullscreen mode Exit fullscreen mode

Array

=size
=sort
Enter fullscreen mode Exit fullscreen mode

Top comments (0)