PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

como analisar json usando json_populate_recordset no postgres


O primeiro argumento passado para a função pgsql json_populate_recordset deve ser um tipo de linha. Se você quiser usar o array json para preencher a tabela existente anoop você pode simplesmente passar a tabela anoop como o tipo de linha assim:
insert into anoop
select * from json_populate_recordset(null::anoop, 
        '[{"id":67272,"name":"EE_Quick_Changes_J_UTP.xlsx"},
          {"id":67273,"name":"16167.txt"},
          {"id":67274,"name":"EE_12_09_2013_Bcum_Searchall.png"}]');

Aqui o null é o valor padrão a ser inserido nas colunas da tabela não definidas no json passado.

Se você não tiver uma tabela existente, precisará criar um tipo de linha para armazenar seus dados json (ou seja, columnnames e seus tipos) e passá-los como o primeiro parâmetro, como este anoop_type :
create TYPE anoop_type AS (id int, name varchar(100));
select * from json_populate_recordset(null :: anoop_type, 
        '[...]') --same as above