Você pode permitir que os usuários especifiquem um caminho no documento JSON e, em seguida, parametrizem esse caminho em uma chamada para uma função como
json_extract_path_text
. Ou seja, a cláusula WHERE ficaria assim:WHERE json_extract_path_text(data, $1) = $2
O argumento path é apenas uma string, facilmente parametrizável, que descreve as chaves para percorrer até o valor fornecido, por exemplo
'foo.bars[0].name'
. O lado direito da cláusula seria parametrizado de acordo com as mesmas regras que você está usando para filtragem de coluna fixa.