From: | Thomas Markus <t(dot)markus(at)proventis(dot)net> |
---|---|
To: | |
Cc: | pgsql-general(at)lists(dot)postgresql(dot)org |
Subject: | Re: Getting json-value as varchar |
Date: | 2022-01-06 13:25:16 |
Message-ID: | fea89b01-5429-4328-c705-5bcd41a91322@proventis.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hi,
Am 06.01.22 um 13:36 schrieb Andreas Joseph Krogh:
> På torsdag 06. januar 2022 kl. 13:31:19, skrev Thomas Markus
> <t(dot)markus(at)proventis(dot)net>:
>
> Hi,
> Am 06.01.22 um 13:28 schrieb Andreas Joseph Krogh:
>> Hi, in PG-14 this query returns "value" (with double-quotes):
>> SELECT ('{"key":"value"}'::jsonb)['key'];
>> ┌─────────┐
>> │ jsonb │
>> ├─────────┤
>> │ "value" │
>> └─────────┘
>> (1 row)
>>
>> and this returns 'value' (without the quotes):
>> SELECT ('{"key":"value"}'::jsonb)->> 'key';
>> ┌──────────┐
>> │ ?column? │
>> ├──────────┤
>> │ value │
>> └──────────┘
>> (1 row)
>>
>> How to I use the subscript syntax and get the result as varchar
>> instead of JSONB, assuming I /know/ the JSON-field is a String?
> simply cast your value
> SELECT (('{"key":"value"}'::jsonb)->> 'key')::text;
>
> best regards
> Thoma
>
> I think you misread my message. What I want is for the subscript-version:
>> ('{"key":"value"}'::jsonb)['key']
> to return:
> ┌──────────┐
> │ ?column? │
> ├──────────┤
> │ value │
> └──────────┘
>
> instead of
> ┌─────────┐
> │ jsonb │
> ├─────────┤
> │ "value" │
> └─────────┘
yeah right :(
complicated but this should do:
SELECT jsonb_build_array( ('{"key":"value"}'::jsonb)['key'] ) ->> 0;
> --
> *Andreas Joseph Krogh*
> CTO / Partner - Visena AS
> Mobile: +47 909 56 963
> andreas(at)visena(dot)com
> www.visena.com <https://www.visena.com>
> <https://www.visena.com>
From | Date | Subject | |
---|---|---|---|
Next Message | David G. Johnston | 2022-01-06 13:29:12 | Re: Getting json-value as varchar |
Previous Message | Andreas Joseph Krogh | 2022-01-06 13:20:23 | Re: Getting json-value as varchar |