CREATE OR REPLACE FUNCTION jsonb_remove_keys( jdata JSONB, keys TEXT[] ) RETURNS JSONB AS $$ DECLARE result JSONB; len INT; target TEXT; BEGIN len = array_length(keys, 1); result = jdata; FOR i IN 1..len LOOP target = keys[i]; IF (jdata ? target) THEN result = (result - target); END IF; END LOOP; RETURN result; END; $$ LANGUAGE plpgsql;