Hi Mark, The EvaluateJsonPath always sets the attribute with empty string value, regardless if the JSON field exists or not. It is only possible to check if the field has a empty value or not, but not possible to check if it actually exists. Am I missing something?
Best Regards, Angel On Thu, Jun 30, 2016 at 7:31 PM, Mark Payne <[email protected]> wrote: > Hi Angel, > > I don't know the reasoning behind only using 'unmatched' for FlowFile > Content, but I am guessing > it has to do with the idea that the FlowFile is not modified when routed > to this relationship and the > author probably wanted to avoid the ambiguity that would occur when some > paths matched but > others didn't. > > That being said, the pattern that is typically followed is to use > EvaluateJsonPath with a destination > of attribute and then to follow this processor with a RouteOnAttribute > processor to check if all of the > attributes were added. > > Thanks > -Mark > > > On Jun 30, 2016, at 12:05 PM, Angel Kafazov <[email protected]> wrote: > > Hello, > > I am considering using EvaluateJsonPath processor to check if JSON > formatted FlowFile content contains a number of predefined fields. The > processor defines three relationships: failure, unmatched and matched as > follows: > > failure FlowFiles are routed to this relationship when the JsonPath > cannot be evaluated against the content of the FlowFile; for instance, if > the FlowFile is not valid JSON > unmatched FlowFiles are routed to this relationship when the JsonPath > does not match the content of the FlowFile and the Destination is set to > flowfile-content > matched FlowFiles are routed to this relationship when the JsonPath is > successfully evaluated and the FlowFile is modified as a result > > If the flowfile-content Destination is used, the existance only one field > can be checked. To validate multiple fields, flowfile-attribute destination > must be used, this means however that the unmatched relationship will not > be used. > > This actually prevents one from being able to check existance multiple > JSON fields in the content, if I understand correctly. What is the reason > for this implementation? Is there any other processor that could be used to > achieve the task? > > Regards, > Angel > > > Angel Kafazov > CST LTD > Bul. Bulgaria, blok 10, 6500 Svilengrad > Bulgaria > +359877336002 (BG Mobile) > +4961509729845 (DE Landline) > Email: [email protected] > http://cst-bg.net > > >
