I have such problem/question. I am trying to extract data from database, but only part. The real example is:
x
{
"email":"bla@gmail.com",
"addinfo":{
"invoice_id":"1F5FspmpyfQ"
},
"cardholder":"blabla",
"masked_pan":"123456XXXXXX1234"
}
I need to receive only 1F5FspmpyfQ
, all between {"invoice_id": " and "}
,.
Advertisement
Answer
You can use Postgres’ JSON functions:
select the_column::jsonb -> 'addinfo' ->> 'invoice_id' as invoice_id
from the_table;
->
returns a json object with the specified key and ->>
returns the key’s value as a text (rather than jsonb
)