Json Path, when some objects don't contain the path

Hello, i have a pipeline that is extracting values from an array using JSON path. This is how it works…

Extract the status and effective data from the array where the “activity” = x

I use this expression…

jsonPath($, “$regulatedActivities[?(@.Activity==‘Credit Broking (W.E.F 01/04/2014)’)].Status”)[0]

All works fine. The problem is, in some cases some items in the array do not contain “Activity” at all. There are subsequent items in the array containing this element, but the expression doesn’t work in this example, it just returns NULL…

image

You can switch to more detailed and easier to control expression. Something like:

jsonPath($, "$regulatedActivities[*]").filter(x=>x.Activity == 'Credit Broking (W.E.F 01/04/2014)')

The result from this will be an array filtered by Activity. If you want only the first object ( [0] ) and you want to take the Status from it, than use the following expression:

jsonPath($, "$regulatedActivities[*]").filter(x=>x.Activity == 'Credit Broking (W.E.F 01/04/2014)')[0].Status

Let me know if this helps,
Bojan

4 Likes

Amazing. Thank you