Skip to main content

Iterator: Flatten Map

Flatten a deeply-nested JSON object/array into a single-level object whose keys are dotted paths. Useful for normalizing arbitrary structures before writing to a flat tabular format (CSV, XLSX, …).

Unlike the other Iterator nodes, this one runs entirely inside its own executor — it does not have an Iterator::Entry / Iterator::Collect sub-graph.

Example
Input: {"a": {"b": 1, "c": [10, 20]}}
Output: {"a.b": 1, "a.c.0": 10, "a.c.1": 20}

Parameters

Delimiter

Separator between key segments. Defaults to .. Use _ or / if dots conflict with your downstream consumer.

Max depth

Maximum recursion depth. Values nested deeper than this are kept as-is at the depth-limit boundary. Leave empty for unlimited recursion.

Flatten arrays

When enabled (default), arrays are flattened with their numeric index as the key segment (e.g. arr.0, arr.1). When disabled, arrays are kept as JSON arrays under their parent key.

Key prefix

Prefix joined to every flattened key with the delimiter (e.g. prefix order with delimiter . produces order.a — do not include the trailing delimiter in the prefix, or you get order..a). Useful when merging the flattened object into a larger document under a known namespace.

Input

JSONrequired

Nested JSON value(s) to flatten. This connector is unlimited: several JSON objects can be wired in, and they are all flattened into one merged output object (keys from later inputs overwrite earlier ones).

Output

JSON
Flattened single-level JSON object.