PostgreSQL 9.4 to_jsonb

PostgreSQL 9.4 to_jsonb

在 PostgreSQL 9.5 to_jsonb function will be added. In 9.4 中只有 to_json 函数。

我正在尝试为 jsonb 转换 this 答案,但找不到 to_json 函数的替代方案。我怎样才能做到这一点。

您可以使用 to_json 然后将其转换为 jsonb :

CREATE OR REPLACE FUNCTION to_jsonb(e anyelement)
RETURNS jsonb 
AS $$
    SELECT to_json(e)::jsonb
$$ LANGUAGE sql;

SELECT to_jsonb('Fred said "Hi."'::text),
       pg_typeof(to_jsonb('Fred said "Hi."'::text));
┌─────────────────────┬───────────┐
│      to_jsonb       │ pg_typeof │
├─────────────────────┼───────────┤
│ "Fred said \"Hi.\"" │ jsonb     │
└─────────────────────┴───────────┘
(1 row)

将此函数命名为 to_jsonb 可能 是个坏主意(因为 9.5 中将内置一个 to_jsonb,而且它确实很容易认为这个也是内置的)。