Support Questions

Find answers, ask questions, and share your expertise

Return a scalar value with EvaluateJSONPath processor

avatar
Expert Contributor

I need to use wildcard syntax in a JSON path to return the color of the bike as a scalar value.  However, the problem is that when I use wildcard syntax with the EvaluateJSONPath processor it always returns an array.  For example

This path returns a scalar value:     $.store.bicycle.color   ==>  red

This path returns an array:              $..bicycle.color         ==> ['red']         

Is it possible to use the EvaluateJSONPath processor with wildcards and get a scalar value in return? 

Or, is it possible to extract the value from the array without using an additional processor?

 

{
    "store": {
        "bicycle": {
            "color": "red",
            "price": 19.95
        }
    },
    "expensive": 10
}
                        

 

 

 

1 ACCEPTED SOLUTION

avatar
Super Guru

Hi,

I dont think there is a way to do that in one processor, check out this post around the problem with possible solution:

https://community.cloudera.com/t5/Support-Questions/Unable-to-return-a-scalar-value-for-the-expressi...

 

If you find this helpful please accept solution.

View solution in original post

2 REPLIES 2

avatar
Super Guru

Hi,

I dont think there is a way to do that in one processor, check out this post around the problem with possible solution:

https://community.cloudera.com/t5/Support-Questions/Unable-to-return-a-scalar-value-for-the-expressi...

 

If you find this helpful please accept solution.

avatar
Expert Contributor

Thanks @SAMSAL, I was tracking that previous post but since it was so old I was hoping newer versions of NiFi could address this.  This is such a simple thing with XML and the EvaluateXPath processor, I am just surprised that we can't do something similar with JSON.  Oh well, 2 processors it is.