CREATE FUNCTION conv(o json) RETURNS json AS $$ if (o instanceof Array) { o[1] = 10; } else if (typeof(o) == 'object') { o.i = 10; } return o; $$ LANGUAGE plv8; SELECT conv('{"i": 3, "b": 20}'); conv ----------------- {"i":10,"b":20} (1 row) SELECT conv('[1, 2, 3]'); conv ---------- [1,10,3] (1 row)