I have an array and I need to check if elements exists in that array or to get that element from the array using jq, fruit.json:
{
"fruit": [
"apple",
"orange",
"pomegranate",
"apricot",
"mango"
]
}
cat fruit.json | jq '.fruit .apple'
does not work
The semantics of 'contains' is not straightforward at all. In general, it would be better to use 'index' to test if an array has a specific value, e.g.
.fruit | index( "orange" )
If your jq has IN/1
then a better solution is to use it:
.fruit as $f | "orange" | IN($f[])
If your jq has first/1
(as does jq 1.5), then here is a fast definition of IN/1
to use:
def IN(s): first((s == .) // empty) // false;