Provides the user with the ability to take a nested JSON document and flatten it into a simple key/value pair document. The keys are combined at each level with a user-defined separator that defaults to '.'. This Processor also allows to unflatten back the flattened json. It supports four kinds of flatten mode such as normal, keep-arrays, dot notation for MongoDB query and keep-primitive-arrays. Default flatten mode is 'keep-arrays'.


json, flatten, unflatten


In the list below, the names of required properties appear in bold. Any other properties (not in bold) are considered optional. The table also indicates any default values, and whether a property supports the NiFi Expression Language.

Display NameAPI NameDefault ValueAllowable ValuesDescription
Separatorflatten-json-separator.The separator character used for joining keys. Must be a JSON-legal character.
Supports Expression Language: true (will be evaluated using flow file attributes and variable registry)
Flatten Modeflatten-modekeep arrays
  • normal Flattens every objects into a single level json
  • keep arrays Flattens every objects and keep arrays format
  • dot notation Conforms to MongoDB dot notation to update also nested documents
  • keep primitive arrays Flattens every objects except arrays which contain only primitive types (strings, numbers, booleans and null)
Specifies how json should be flattened/unflattened
Ignore Reserved Charactersignore-reserved-charactersfalse
  • true
  • false
If true, reserved characters in keys will be ignored
Return Typeflatten-json-return-typeflatten
  • flatten
  • unflatten
Specifies the desired return type of json such as flatten/unflatten
Character Setflatten-json-character-setUTF-8The Character Set in which file is encoded
Pretty Print JSONflatten-json-pretty-print-jsonfalse
  • true
  • false
Specifies whether or not resulted json should be pretty printed


successSuccessfully flattened/unflattened files go to this relationship.
failureFiles that cannot be flattened/unflattened go to this relationship.

Reads Attributes:

None specified.

Writes Attributes:

None specified.

State management:

This component does not store state.


This component is not restricted.

Input requirement:

This component requires an incoming relationship.

System Resource Considerations:

None specified.