The component exposes a single server-side action that transforms JSON into CSV.
This is especially useful for:
Downloading data as CSV files
Exporting API responses or logs
Preparing data for Excel or other tools that import CSV
The output is returned as Text (CSV content). You can then convert it to BinaryData using TextToBinaryData to download it as a file.
TextToBinaryData
Purpose: Converts a JSON string into CSV text.
JsonText (Text)The JSON input to transform. Must be a JSON array of objects:
Delimiter (Text) (optional)The delimiter used between CSV columns.
IncludeHeader (Boolean) (optional)If True, writes a header row containing column names.
True
CSVText (Text)The generated CSV content as text.
IsJSONValid (Boolean)True only when:
the JSON parses successfully
The action supports only JSON in this shape:
Supported:
[ { "Id": 1, "Name": "Test 1" }, { "Id": 2, "Name": "Test 2" } ]
Not supported (returns IsJSONValid = False):
IsJSONValid = False
Non-JSON input (e.g., hello world)
hello world
A single object (not an array)
Arrays with scalars (e.g., [1,2,3])
[1,2,3]
Mixed arrays (e.g., [{...}, 1])
[{...}, 1]
Headers are generated from the union of keys across all rows.
Nested object keys are flattened using dot notation.
Missing values for a column in a row will be exported as empty cells.
Nested objects are flattened into Parent.Child:
Parent.Child
Input:
{ "Address": { "City": "Cluj", "Zip": "400000" } }
CSV columns:
Address.City
Address.Zip
Arrays are written into a single CSV cell.
Arrays of scalars:
{ "Tags": ["dev", "outsystems"] }
becomes:
Tags = dev;outsystems
Arrays containing objects:
{ "Projects": [ { "Code": "PRJ-1" }, { "Code": "PRJ-2" } ] }
Each item is serialized compactly and joined into one cell.
Call TransformJSONToCSV
TransformJSONToCSV
If IsJSONValid = False -> show validation error to user
Convert to binary using TextToBinary and download.