TransformItems
TransformItems
type: "io.kestra.plugin.transform.jsonata.TransformItems"
Transform or query a JSON data using JSONata.
JSONata is a query and transformation language for JSON data.
Examples
Transform a JSON file using a JSONata expression.
id: jsonata_example
namespace: company.team
tasks:
- id: http_download
type: io.kestra.plugin.core.http.Download
uri: https://dummyjson.com/products
- id: get_product_and_brand_name
description: "String Transformation"
type: io.kestra.plugin.transform.jsonata.TransformItems
from: "{{ outputs.http_download.uri }}"
expression: products.(title & ' by ' & brand)
- id: get_total_price
description: "Number Transformation"
type: io.kestra.plugin.transform.jsonata.TransformItems
from: "{{ outputs.http_download.uri }}"
expression: $sum(products.price)
- id: sum_up
description: "Writing out results in the form of JSON"
type: io.kestra.plugin.transform.jsonata.TransformItems
from: "{{ outputs.http_download.uri }}"
expression: |
{
"total_products": $count(products),
"total_price": $sum(products.price),
"total_discounted_price": $sum(products.(price-(price*discountPercentage/100)))
}
Calculate the total price per order from a JSON file.
id: jsonata
namespace: company.team
tasks:
- id: extract
type: io.kestra.plugin.core.http.Download
uri: https://huggingface.co/datasets/kestra/datasets/resolve/main/json/orders.json
- id: jsonata
type: io.kestra.plugin.transform.jsonata.TransformItems
from: "{{ outputs.extract.uri }}"
expression: |
Account.Order.{
"order_id": OrderID,
"total": $round($sum(Product.(Price * Quantity)), 2)
}
Properties
explodeArray
- Type: boolean
- Dynamic: ✔️
- Required: ✔️
- Default:
true
Specifies whether to explode arrays into separate records.
If the JSONata expression results in a JSON array and this property is set to
true
, then a record will be written for each element. Otherwise, the JSON array is kept as a single record.
expression
- Type: string
- Dynamic: ✔️
- Required: ✔️
The JSONata expression to apply on the JSON object.
from
- Type: string
- Dynamic: ✔️
- Required: ✔️
The file to be transformed.
Must be a
kestra://
internal storage URI.
maxDepth
- Type: integer
- Dynamic: ✔️
- Required: ✔️
- Default:
1000
The maximum number of recursive calls allowed for the JSONata transformation.
Outputs
processedItemsTotal
- Type: integer
- Required: ❌
The total number of items that was processed by the task.
uri
- Type: string
- Required: ❌
- Format:
uri
File URI containing the result of transformation.
Was this page helpful?