Я пытаюсь проанализировать следующие данные json и использовать его в соответствии с пунктом where
.Postgres: Разбор данных JSON в sql
Basic":{
"General":{
"Field1":1234,
"Field2":"6.86"
},
"Stream 0":{
"Type":"LDAP",
"Field4":"LALA1"
},
"Stream 1":{
"Type":"KERBEROS",
"Field4":"LALA2"
},
"Stream 2":{
"Type":"SAML",
"Field4":"LALA3"
},
Я могу достигнуть Type
бирки как это.
table.column_json::json->'Basic'->'Stream 0'->'Type'
Порядок Stream #
не определен и не может более чем на 3 Stream
теги.
Как я могу перебирать каждый поток и находить, если Type:
is "SAML"
, то Field4
значение "LALA3"
.
'json_each()' работал для меня, но '=' дает ошибку 'operator does not exist'. Я попытался использовать 'j.v -> 'Type' :: varchar = 'SAML'', но не повезло. –
А, да. Оператором '- >>' должен был быть полем 'text'. См. Обновленный ответ. – Patrick