Смотрим операторы:
https://www.postgresql.org/docs/current/static/fun...
Печально, прямого оператора как && overlap у массивов нет.
?| text[] Do any of these array strings exist as top-level keys?
Зато тот вполне подходит. Значит, заменить json на jsonb затем запрос будет
select * from t where jsonbfield ?| array['0', '5', '7']::text[];
Если на входе удобен именно json массив, а не pg массив, то относительно просто переписывается одно в другое
select * from t where jsonbfield ?| (select array_agg(t) from json_array_elements_text('["0","5","7"]') t);
gin и gist индексы оператор ?| могут обрабатывать.