Re: retrieve subset of a jsonb object with a list of keys - Mailing list pgsql-general

From Tom Smith
Subject Re: retrieve subset of a jsonb object with a list of keys
Date
Msg-id CAKwSVFEvTRfDe9ujxy10uJ2f+XROivWVwBjYUFZ_5P2eB-SQQw@mail.gmail.com
Whole thread Raw
In response to Re: retrieve subset of a jsonb object with a list of keys  (Chris Mair <chris@1006.org>)
List pgsql-general
thanks.  I hope a new function can be added(with high perf C function) in new release to allow something like

json_subset(jsonb_object, [key1,key2])


On Wed, Aug 19, 2015 at 9:46 AM, Chris Mair <chris@1006.org> wrote:
On 19/08/15 13:37, Tom Smith wrote:
> Hi:
>
> I have a jsonb columne with json object like belo
> {"a": 1, "b":2, "c":3}
>
> I'd like to get subset of the object with key list ["a","c"]
> so it retruns json object of
>
> {"a": 1,  "c":3}
>
> something like
>
> select '{"a": 1, "b":2, "c":3}'::jsob ->'["a","c"]'
>
> what would be the most efficient (and simplest if possible) to get the
> subset with the key list?

Hi,

I came up with this:

select json_object_agg(key, value)
  from jsonb_each_text('{"a": 1, "b":2, "c":3}'::jsonb)
  where key in ('a', 'c');

IDK if there is a shorter way. You might want to wrap this in a function.

Bye,
Chris.




pgsql-general by date:

Previous
From: Karthik Viswanathan
Date:
Subject: live and dead tuples are zero on slave running on tmpfs
Next
From: Bianchi Quota Leonardo
Date:
Subject: R: Chars problem restoring to ps 8.4 (utf8) a dumped db from ps 8.1 (latin9)