How to select values in a JSON type of column? - Mailing list pgsql-general

From Snjezana Frketic
Subject How to select values in a JSON type of column?
Date
Msg-id CA+9_ahaS5YkqQ5B8=S6KRgSaspk0uedT5gBP0NS_YU2ym9O68g@mail.gmail.com
Whole thread Raw
Responses Re: How to select values in a JSON type of column?  ("David G. Johnston" <david.g.johnston@gmail.com>)
Re: How to select values in a JSON type of column?  (Thomas Kellerer <shammat@gmx.net>)
List pgsql-general
Hi!

I have a column called targeting in a table called campaigns .
The column looks like

{
"targets": [
{
"audienceSegments": [
{
"includes": [
{
"consumer": "selection",
"segments": {
"allOf": [
{
"provider": "a",
"ids": [
{
"id": "110418"
},
{
"id": "110430"
},
{
"id": "110433"
}
]
}
]
}
}
],
"excludes": [
{
"consumer": "selection",
"segments": {
"allOf": [
{
"provider": "a",
"ids": [
{
"id": "109776"
}
]
}
]
}
}
]
}
]
}
]
}
and I need to select all the ids in includes.
Currently, I am doing it like this 

SELECT targeting#>'{targets,0,audienceSegments,0,includes,0,segments,allOf,0,ids}'FROM campaigns;  

and that works, but, I don’t want to have a fixed path because positions could change like 0 could become 1includes and excludes could change positions, allOf  could be anyOf etc.
Any idea of how to always select ids in includes no matter the changes?

Thank you!
Anna

pgsql-general by date:

Previous
From: Marcin Giedz
Date:
Subject: Re: pg_upgrade from 12 to 13 failes with plpython2
Next
From: Phil Florent
Date:
Subject: No parallel plan on an union all subquery