Skip to main content
LuxIsterica
Silver ⭐️⭐️
October 10, 2019
Solved

Evaluate json for attribute

Hello,
I would like to implement this logic on nifi:
I have a json array:
[
{
"att1": "1",
"att2": "aaa"
},
{
"att1": "2",
"att2": "bbb"
},
{
"att1": "3",
"att2": "aaa"
},
]

I would like that, according to the attribute, the json was processed to the processA or to the processB.

For example, if att2 is equal "aaa", it was processed to the processA, else it was processed to the processB.
I tried to follow the suggestion of the following solution

https://community.cloudera.com/t5/Support-Questions/Nifi-processor-route-json-array-into-multiple-json-arrays/td-p/128722

but it didn't work. Can you give me an alternative?

Thank you.

DigitalPlumber
Gold ⭐️
October 11, 2019

Hi @LuxIsterica,

 

I would split your json (SplitJson) > EvaluateJsonPath ( To turn att2 to an attribute and call it an attribute name ) > RouteOnAttribute ( To see if the attribute name you grabbed equals to aaa ) > Route it either to you found a relationship or unmatched

 

Screen Shot 2019-10-11 at 2.56.56 PM.png

 

2 replies

DigitalPlumber
Gold ⭐️
Gold ⭐️
October 11, 2019

Hi @LuxIsterica,

 

I would split your json (SplitJson) > EvaluateJsonPath ( To turn att2 to an attribute and call it an attribute name ) > RouteOnAttribute ( To see if the attribute name you grabbed equals to aaa ) > Route it either to you found a relationship or unmatched

 

Screen Shot 2019-10-11 at 2.56.56 PM.png

 

Translate
LuxIsterica
Silver ⭐️⭐️
October 13, 2019

Thank you so much! 

Translate