Обсуждение: retrieve subset of a jsonb object with a list of keys
Hi:
I have a jsonb columne with json object like belo{"a": 1, "c":3}
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.
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.