Я использую Postgres 9.6 и у меня есть поле JSON с именем credits
со следующей структурой;Список кредитов, каждый с позицией и несколькими людьми, которые могут быть в этой позиции.
[
{
"position": "Set Designers",
people: [
"Joe Blow",
"Tom Thumb"
]
}
]
Мне нужно преобразовать вложенный массив people
, который в настоящее время представляет собой просто строки, представляющие их имена, в объекты.с полями name
и image_url
, например:
[
{
"position": "Set Designers",
people: [
{ "name": "Joe Blow", "image_url": "" },
{ "name": "Tom Thumb", "image_url": "" }
]
}
]
До сих пор мне удавалось найти достойные примеры выполнения этого либо для родительского массива JSON, либо для вложенного поля массивавнутри одного объекта JSON.
Пока это все, чем я мог управлять, и даже это искажает результат.
UPDATE campaigns
SET credits = (
SELECT jsonb_build_array(el)
FROM jsonb_array_elements(credits::jsonb) AS el
)::jsonb
;