jsonata array functions

Array Functions (Standard JSONata)

Article Type: How-To Audience: Developers, App Admins Module: How To

Standard JSONata array functions available in expressions throughout the Fuuz platform.

Note: This page covers the standard JSONata array functions. For Fuuz-specific custom functions, see Array Functions Platform Architecture.

$count()

Signature: $count(array)

Returns the number of items in the array parameter. If the array parameter is not an array, but rather a value of another JSON type, then the parameter is treated as a singleton array containing that value, and this function returns 1.

If array is not specified, then the context value is used as the value of array.

Examples

  • $count([1,2,3,1]) => 4
  • $count("hello") => 1

$append()

Signature: $append(array1, array2)

Returns an array containing the values in array1 followed by the values in array2. If either parameter is not an array, then it is treated as a singleton array containing that value.

Examples

  • $append([1,2,3], [4,5,6]) => [1,2,3,4,5,6]
  • $append([1,2,3], 4) => [1,2,3,4]
  • $append("Hello", "World") => ["Hello", "World"]

$sort()

Signature: $sort(array [, function])

Returns an array containing all the values in the array parameter, but sorted into order. If no function parameter is supplied, then the array parameter must contain only numbers or only strings, and they will be sorted in order of increasing number, or increasing unicode codepoint respectively.

If a comparator function is supplied, then it must be a function that takes two parameters:

function(left, right)

This function gets invoked by the sorting algorithm to compare two values left and right. If the value of left should be placed after the value of right in the desired sort order, then the function must return Boolean true to indicate a swap. Otherwise it must return false.

Example

$sort(Account.Order.Product, function($l, $r) {
  $l.Description.Weight > $r.Description.Weight
})

This sorts the products in order of increasing weight.

The sorting algorithm is stable, which means that values within the original array which are the same according to the comparator function will remain in the original order in the sorted array.

$reverse()

Signature: $reverse(array)

Returns an array containing all the values from the array parameter, but in reverse order.

Examples

  • $reverse(["Hello", "World"]) => ["World", "Hello"]
  • [1..5] ~> $reverse() => [5, 4, 3, 2, 1]

$shuffle()

Signature: $shuffle(array)

Returns an array containing all the values from the array parameter, but shuffled into random order.

Examples

  • $shuffle([1..9]) => [6, 8, 2, 3, 9, 5, 1, 4, 7]

$distinct()

Signature: $distinct(array)

Returns an array containing all the values from the array parameter, but with any duplicates removed. Values are tested for deep equality as if by using the equality operator (see Comparison Operators).

Examples

  • $distinct([1,2,3,3,4,3,5]) => [1, 2, 3, 4, 5]
  • $distinct(Account.Order.Product.Description.Colour) => ["Purple", "Orange", "Black"]

$zip()

Signature: $zip(array1, ...)

Returns a convolved (zipped) array containing grouped arrays of values from the array1 ... arrayN arguments from index 0, 1, 2, etc.

This function accepts a variable number of arguments. The length of the returned array is equal to the length of the shortest array in the arguments.

Examples

  • $zip([1,2,3], [4,5,6]) => [[1,4], [2,5], [3,6]]
  • $zip([1,2,3],[4,5],[7,8,9]) => [[1,4,7], [2,5,8]]

See Also

    • Related Articles

    • Boolean Functions

      Article Type: How-To Audience: Developers, App Admins Module: How To Standard JSONata Boolean functions available in expressions throughout the Fuuz platform. $boolean() Signature: $boolean(arg) Casts the argument to a Boolean using the following ...
    • Jsonata Tutorial

      Tutorial Fuuz Context How to use this in Fuuz: The tutorial patterns map directly to Fuuz Data Pipelines. Use dot-path navigation for mappings, predicates for routing, array/object constructors for shaping outputs, and higher-order functions for ...
    • String Functions

      String functions Fuuz Context Where this applies in Fuuz: String utilities are used across Fuuz Mappings and Rules to normalize labels, build identifiers, cleanse free-form inputs, and prepare payloads for downstream systems. $string: Serialize ...
    • Aggregation Functions

      Article Type: How-To Audience: Developers, App Admins Module: How To Numeric aggregation functions available in JSONata expressions throughout the Fuuz platform. $sum() Signature: $sum(array) Returns the arithmetic sum of an array of numbers. It is ...
    • Object Functions

      Object functions Fuuz Context Where this applies in Fuuz: Object utilities help normalize heterogeneous payloads from connectors, merge partial updates, and emit well-formed objects to Fuuz topics. $keys/$lookup: Discover and retrieve fields across ...