Преобразование типов PGobject в Clojure
У меня проблемы с преобразованием типов в Clojure с использованием Hugsql. Я новичок в Clojure и новее в SQL, и я был бы признателен за любую помощь, которую я могу получить.
Недавно мы перенесли нашу базу данных PostgreSQL, поэтому один столбец - это массив json, а не строка - миграция выглядит следующим образом:
ALTER TABLE customers ALTER id TYPE JSON USING json_build_array(id);
Но теперь, когда я делаю запрос для этих данных, типом является PGobject, а не коллекция, как я надеялся. Пока я ищу:
["id-123"]
фактическое возвращаемое значение
#object[org.postgresql.util.PGobject 0x7ff0434e "[\"id-123\"]"]
Я потратил некоторое время на поиски преобразования типов, но безуспешно. Как я могу преобразовать тип этого ответа в коллекцию или последовательность в Clojure? Спасибо за вашу помощь!
1 ответ
Оказывается, это гораздо проще, чем я хотел.
Вы можете просто использовать (.getValue my-pgobject)
и он будет преобразован в строку вроде:
"[\"id-123\"]"
, который затем может быть проанализирован с помощью чего-то вроде cheshire.core/parse-string