with t (sup) as (
select cast('[[1,4,9],[2,3,5]]' as json)
)
select t.sup, s1.i, s2.j
from t
cross join generate_series(0, json_array_length(t.sup)-1) s1(i)
cross join generate_series(0, json_array_length(t.sup->s1.i)-1) s2(j)
where cast((t.sup->s1.i)->>s2.j as integer) = 3
;
sup i j
----------------- - -
[[1,4,9],[2,3,5]] 1 1