Use o
->> operador para recuperar o campo json. Isso deve funcionar e retornar
null (como em, sem valor) corretamente para ambos:select ('{"id": null}'::json->>'id')::text
select ('{"id": null}'::json->>'id')::integer
Eu criei um violino que o demonstra
PS:para obter a string
"null" , você precisaria definir seu json como:{"id": "null"}