select json_objectagg( k:v absent on null with unique keys returning text ) from ( values(1,1),(0, null),(3, null),(2,2),(4,null) ) foo(k, v);
return json_objectagg ---------------------- { "1" : 1, "2" : 2 } -------------------- select json_objectagg(k:v absent on null with unique keys) from ( values(1,1),(0, null),(3, null),(2,2),(4,null) ) foo(k, v); return json_objectagg ---------------------- { "1" : 1, "2" : 2 } *But* select json_objectagg( k:v absent on null with unique keys returning jsonb ) from ( values(1,1),(0, null),(3, null),(2,2),(4,null) ) foo(k, v); return json_objectagg ----------------------------- {"0": null, "1": 1, "2": 2} the last query "returning jsonb" should be { "1" : 1, "2" : 2 } ? version: > PostgreSQL 15devel (Ubuntu > 15~~devel~20220407.0430-1~713.git79b716c.pgdg20.04+1) on > x86_64-pc-linux-gnu, > compiled by gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0, 64-bit