Използвайте ->>
оператор за извличане на json полето.
Това трябва да работи и да върне null
(както в, без стойност) правилно и за двете:
select ('{"id": null}'::json->>'id')::text
select ('{"id": null}'::json->>'id')::integer
Аз направих цигулка което го демонстрира
PS:за получаване на низ "null"
, ще трябва да дефинирате своя json като:{"id": "null"}