Преобразование типов 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

Другие вопросы по тегам