Configuration Reference
All properties and per-operation requirements for JSON Transform.
Properties
| Property | Type | Required | Default | Description |
|---|---|---|---|---|
operation | string enum | Yes | — | The JSON operation to perform. One of: parse, stringify, minify, extract, merge, filter. |
source | string | object (expression) | No* | — | The primary input data. For parse, this should be a JSON string. For others, this can be an object or BizFirst expression. *Either source or source_output must be provided. |
source_output | string | No* | — | Name of an upstream node whose output is used as the source. Takes precedence over source. |
property | string (dot-notation) | For extract | — | The dot-notation path to extract from the source object. Used only by the extract operation. Example: transaction.amount.value. |
merge_with | object | expression | For merge | — | The second object to merge into the primary source. Used only by the merge operation. Properties in this object overwrite matching properties in source. |
Per-Operation Requirements
| Operation | source / source_output | property | merge_with | Notes |
|---|---|---|---|---|
parse | Required (JSON string) | — | — | Source must be a valid JSON string. Malformed JSON triggers the error port. |
stringify | Required (any object) | — | — | Produces pretty-printed JSON with 2-space indentation. |
minify | Required (object or JSON string) | — | — | If source is a string, it is first parsed then re-serialized without whitespace. |
extract | Required (object) | Required | — | Returns null (not an error) if the path does not exist. |
merge | Required (object) | — | Required | Shallow merge only. Nested objects are replaced wholesale, not recursively merged. |
filter | Required (array) | — | — | Removes null and undefined entries. Non-null falsy values (0, false, "") are preserved. |
Shallow Merge Behaviour
The merge operation performs a shallow (single-level) merge, not a deep recursive merge. If both source objects have a property containing a nested object, the entire nested object from merge_with replaces the one from source. For deep merging, use a CodeExecute node with custom JavaScript.
Example: All Six Operations
// parse: turn a JSON string into an object
{ "operation": "parse", "source": "{@ output.HttpCall.body }" }
// stringify: turn an object into a pretty JSON string
{ "operation": "stringify", "source_output": "BuildPayload" }
// minify: compact JSON for storage
{ "operation": "minify", "source_output": "BuildPayload" }
// extract: pull a nested field
{ "operation": "extract", "source_output": "ParsedResponse", "property": "data.user.id" }
// merge: overlay updates onto a base record
{
"operation": "merge",
"source": "{@ var.baseCustomer }",
"merge_with": "{@ var.customerUpdates }"
}
// filter: remove nulls from array
{ "operation": "filter", "source": "{@ var.productList }" }