Chris - also you were clear. I was just too quick to reply and didn't read carefully.
On Mon, Mar 21, 2016 at 1:53 PM, Mark Payne <[email protected]> wrote: > Chris, > > Unfortunately, at this time, the EvaluateJsonPath requires that the JSON to > evaluate be the content of the FlowFIle. > There already does exist a ticket [1] that would allow you to specify an > attribute to use as the JSON instead of > requiring that it be the content only. Unfortunately, this has not yet been > implemented. > > Thanks > -Mark > > [1] https://issues.apache.org/jira/browse/NIFI-1567 > > >> On Mar 21, 2016, at 1:48 PM, McDermott, Chris Kevin (MSDU - >> STaTS/StorefrontRemote) <[email protected]> wrote: >> >> Joe, >> >> Thanks for the reply. I think I was not clear. >> >> The JSON I need to evaluate is in a FlowFile attribute (kafka.key) which I >> need to be able to evaluate without modifying the original FlowFile content >> (which was read from the Kafka topic). What I can’t figure out is how to >> squirrel away the flowfile content so that I can write the value of the >> kafka.key attribute to the FlowFile content, so that I can process it with >> EvaluateJsonPath, and then read content I squirreled away back into the >> FlowFile content. I considered using the the DistributedMapCache, but there >> would be no guarantee what I added to the cache would still be there when I >> needed it back. >> >> >> >> >> On 3/21/16, 1:37 PM, "Joe Witt" <[email protected]> wrote: >> >>> Chris, >>> >>> Sounds like you have the right flow in mind already. EvaluateJSONPath >>> does not write content. It merely evaluates the given jsonpath >>> expression against the content of the flowfile and if appropriate >>> creates a flowfile attribute of what it finds. >>> >>> For example if you have JSON from Twitter you can use EvaluateJsonPath >>> and add a property with a name >>> 'twitter.user' and a value of '$.user.name' >>> >>> Once you run the tweets through each flow file will have an attribute >>> called 'twitter.user' with the name found in the message. No >>> manipulation of content at all. Just promotes things it finds to flow >>> file attributes. >>> >>> Thanks >>> Joe >>> >>> On Mon, Mar 21, 2016 at 1:34 PM, McDermott, Chris Kevin (MSDU - >>> STaTS/StorefrontRemote) <[email protected]> wrote: >>>> What I need to do is read a file from Kafka. The Kafka key contains a >>>> JSON string which I need to turn in FlowFile attributes while preserving >>>> the original FlowFile content. Obviously I can use EvaluteJsonPath but >>>> that necessitates replacing the FlowFile content with the kaka.key >>>> attribute, thus loosing the original FlowFile content. I feel like I’m >>>> missing something fundamental. >
