Expressions

Arrays

5min

Handling arrays when saving data to SQL and

 require JSONATA expressions to return the data as an array rather than a string.

The operators used for handling arrays are:



Configuration

Usually, data in

 is saved as an array, for example, ['value1', 'value2'], but when

returns the data, it is stringified as "['value1', 'value2']". If the data is used in components, for example, to show an intialValue, it is not seen as an array but rather as a string. Use the =$eval before the expression to return the data in an array.

Example

=$eval(@ctx.datasources.profile.food)

dropdown-dd


SQL Configuration

Data is sent as an array, for example, ['value1', 'value2'], SQL then saves the data as VARCHAR(MAX), for example, 'value1, value2'. If the data is used in components, for example, to show an intialValue, it is not seen as an array but rather as a string. Use the =$split before the expression to return the data in an array.

Example

=$split(@ctx.datasources.profile.food, ',')

dropdown-sql


There could be a scenario where there is only one string inside an array. Use the =$.count to determine if there is only one string in the array or more. If there are more than one, include $.split in the expression.

Example

=$count($split(@ctx.datasource.profile.food, ',')) = 1 ? @ctx.datasources.profile.food:$count($split(@ctx.datasources.profile.food, ',')) >1 ? $split(@ctx.datqasources.food, ','):null

dropdown-sql-count


Create a filtered list from an array of records

Filter an array of records to display specific data and perform expression transformations over the data.

We will display a list of people from the array of records, then filter them and display those that have entered a name. We will display their initials as a left avatar and add a label to each list item to display whether they are registered.

Result with Advanced Expressions
Result with Advanced Expressions




See the full example in GitHub.

advanced-expression.jigx




Updated 18 Dec 2023
Doc contributor
Did this page help you?