Description
The Extract Multi with JsonPath activity extracts values from JSON content stored in one or more input columns. Each mapping selects a source column, applies a JsonPath expression, and writes the extracted result to a configured output column.
Supported Features
- Multiple extraction mappings: Extract several values in one activity.
- Multiple source columns: Each mapping can read from a different JSON column.
- Custom output columns: Write every extracted value to a named output column.
- String extraction option: Return extracted values as strings when
ExtractAsString is enabled.
- Original column retention: Keep or drop original input columns using
IncludeOriginal.
- Lineage support: Records source column, JsonPath expression, and output column for each mapping.
| Type | Required | Description |
|---|
| Data | Yes | Input rows containing one or more columns with JSON text or JSON-compatible values. |
1. Extract One Value From One JSON Column
| Id | Payload |
|---|
| 1 | {"user":{"name":"Alice","age":30}} |
2. Extract Multiple Values From One JSON Column
Use multiple mappings with the same ColumnName and different JsonPath expressions.
3. Extract Values From Multiple JSON Columns
Use mappings that reference different source columns, such as CustomerJson and OrderJson.
Output
| Field | Type | Description |
|---|
| Data | Array | Transformed rows containing extracted output columns. Original columns are retained only when IncludeOriginal is enabled. |
Example Output
When IncludeOriginal is true:
| Id | Payload | CustomerName | CustomerAge |
|---|
| 1 | {"user":{"name":"Alice","age":30}} | Alice | 30 |
When IncludeOriginal is false:
| CustomerName | CustomerAge |
|---|
| Alice | 30 |
Configuration Fields
| Field Name | Type | Required | Description |
|---|
| Column Map | Object Array | Yes | List of extraction mappings. Each mapping contains ColumnName, OutputColumn, JsonPath, and ExtractAsString. |
| ColumnName | Previous Data Column | Yes | Source column that contains JSON content. |
| OutputColumn | Text | Yes | Name of the output column that receives the extracted value. |
| JsonPath | Text | Yes | JsonPath expression used to select a value from the source JSON. |
| ExtractAsString | Boolean | Yes | When enabled, the extracted value is returned as a string. When disabled, the transformer can preserve the extracted value’s native representation where supported. |
| IncludeOriginal | Boolean | No | When enabled, original input columns are retained alongside extracted columns. When disabled, output contains the extracted columns only. |
Conditional Field Rendering Rules
No conditional configuration fields are defined for this activity.
| Id | Payload |
|---|
| 1 | {"user":{"name":"Alice","age":30},"orders":[{"id":"O-001","amount":120.5}]} |
| 2 | {"user":{"name":"Bob","age":42},"orders":[{"id":"O-002","amount":89.0}]} |
Sample Configuration
| ColumnName | OutputColumn | JsonPath | ExtractAsString |
|---|
Payload | CustomerName | $.user.name | true |
Payload | CustomerAge | $.user.age | false |
Payload | FirstOrderId | $.orders[0].id | true |
| Field | Value |
|---|
| IncludeOriginal | true |
Sample Output
| Id | Payload | CustomerName | CustomerAge | FirstOrderId |
|---|
| 1 | {"user":{"name":"Alice","age":30},"orders":[{"id":"O-001","amount":120.5}]} | Alice | 30 | O-001 |
| 2 | {"user":{"name":"Bob","age":42},"orders":[{"id":"O-002","amount":89.0}]} | Bob | 42 | O-002 |