У меня есть поле jsonb в PostgreSQL со следующим содержимым:
{ "object": { "urls": "A;B;C" } }
Я хочу обновить значение urls
внутри объекта и преобразовать строку со значениями, разделенными точкой с запятой, в массив JSON. Результат должен выглядеть так:
{ "object" : { "urls": ["A", "B", "C"] } }
Узнал, как получить массив JSON. С использованием
to_json(string_to_array(replace((json->'object'->'urls')::text, '"',''), ';'));
дает мне ["A", "B", "C"]
(я думаю, должен быть лучший способ сделать это без преобразования json -> text -> array -> json. Предложения приветствуются)
Но как мне теперь обновить поле urls
массивом json? Наверное, придется использовать jsonb_set
?