パラメータホルダーはリテラル内では理解されません:'...:nom...' :nomの文字が含まれます 、nomのバインドされた値ではありません 。
PostgreSQL 9.5(およびそれ以降)の場合は、以下を使用します:
SELECT * FROM contrat WHERE contrat_json @> jsonb_build_object('nom', :nom)
9.4の場合:
SELECT * FROM contrat WHERE contrat_json @> CAST(json_build_object('nom', :nom) AS jsonb)
9.3(およびそれ以前)の場合、JSON包含演算子はありません(jsonbもありません) タイプ)。
https://rextester.com/AUHP11519