Como obter dados de Json para PostgreSQL de várias colunas

Oct 05 2020

Quero extrair muitos objetos (não todos os objetos) em JSON, mas não quero digitar para cada coisa assim:

Select *,  
metrics::json ->> 'spend',
metrics::json ->> 'impressions',
metrics::json ->> 'clicks'
from t1

Aqui meu DEMO mostra dados reais e caso, como extrair para várias colunas e convertê-lo para o tipo de dados exato (float, inteiro)

Refiro esta questão , posso usar json_to_recordpara este ou outro método e como?

Respostas

1 BlueStar Oct 06 2020 at 05:44

Você pode apenas especificar as colunas que deseja na estrutura de retorno. Então, se você está interessado apenas em "gastos" e "impressões", pode fazer

SELECT x.*
FROM t1, json_to_record(t1.metrics) 
AS x(spend numeric, impressions int);