I'm using Spring EL to pull values out of a rather complex set of nested maps and lists. I want to be able to use an expression like
[9]['firstSubKey']['secondSubKey']
except that [9]['firstSubKey']
might be null. I can't figure out how to use the safe navigation correctly: I tried
[9]['firstSubKey']?['secondSubKey']
and
[9]['firstSubKey']?.['secondSubKey']
and both returned some kind of parse error. I eventually got it to work by using
[9]['firstSubKey']?.get('secondSubKey')
but that feels tacky. Is there a better way or is this just a feature SpringEL doesn't have? I'm using Spring 3.1.3.
Relatedly, if I have a list/array of an unknown number of elements, is there a way to check for that safely? IE if I have an array of 4 elements, I want [5]
to return null. As is, it throws a SpelEvaluationException
.
I couldn't come up with a better solution to yours; only
"['0']['a'] != null ? ['0']['a']['b'] : null"
and
"size() > 5 ? [5] : null"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With