apache-nifiapache-minifi

How to convert a string to a JSON array using NiFi


In NiFi I'm processing a flowfile containing the following attribute:

Key: 'my_array'
    Value: '[u'firstElement', u'secondElement']'

I'd like to split flowFile on this array to process each element separately (and then merge). I tried to use SplitJson processor, but it requires JSON content to operate on, so I used AttributesToJSON before it. Unfortunately the produced flowFile's content is:

{"my_array": "[u'firstElement', u'secondElement'"}

And I receive the error

The evaluated value [u'firstElement', u'secondElement'] of $['my_array'] was not a JSON Array compatible type and cannot be split.

Is it possible to convert my_array string to the correct JSON array? Do I need to use ExecuteScript or is there some simpler way?


Solution

  • How about ReplaceText with Replacement Strategy of Always Replace and Replacement Value of ${my_array} and then SplitJSON? This will replace your FlowFile's content with this attribute's value and then you could SplitJSON on it.