PostgreSQL将json转换为复合类型

时间:2015-05-15 13:32:21

标签: json postgresql-9.4

我正在试验POstgreSQL 9.4中的新json函数,并发现它们中的大多数非常有用。例如,将Composite类型转换为json,以帮助后端进程更容易地映射函数结果。

但是我无法工作的另一种方法是将json字符串转换为Composite类型的对象。

请注意,函数调用to_json(...)在此用于模拟具有复合类型精确结构的json字符串

DROP TYPE IF EXISTS myType_1;
DROP TYPE IF EXISTS myType_0;

CREATE TYPE myType_0 AS (
    id SMALLINT,
    name TEXT
);

CREATE TYPE myType_1 AS (
    since TIMESTAMP,
    objects myType_0[]
);


SELECT json_populate_record(NULL::myType_1, 
                            to_json( ROW( now(), 
                                          ARRAY[ROW(1,'name1')::myType_0, 
                                                ROW(2,'name2')::myType_0, 
                                                ROW(4,'name3')::myType_0])::myType_1))

代码返回

ERROR:  malformed array literal: "[{"id":1,"name":"name1"},{"id":2,"name":"name2"},{"id":4,"name":"name3"}]"
DETAIL:  "[" must introduce explicitly-specified array dimensions. 

0 个答案:

没有答案