JSON, в базе данных, в структуру?
У меня в базе данных лежит следующее значение у поля, тип которого JSONB. Назовём данный столбец test:
{"a": 1, "b": 2}
У меня есть такая структура, точнее, сейчас она выглядит так:
type Model struct {
ID int `db:"id"`
Name string `db:"name"`
Test map[string]interface{} `db:"test"`
}
Соответственно, в поле Test лежат пары key-value из базы данных.
Но мне хотелось бы заменить map[string]interface{} на структуру, чтобы по итогу это выглядело так:
type Model struct {
ID int `db:"id"`
Name string `db:"name"`
Test TestModel `db:"test"`
}
type TestModel struct {
A int
B int
}
Сейчас я использую pmx для запросов. Но подскажите пожалуйста, как я могу реализовать данное преобразование? В какую сторону стоит посмотреть?
Я подумал, что можно переписать данный запрос на pgx, отдельно записать данное поле в переменную, привести JSON к структуре и присвоить данную структуру к основной модели. Но насколько это хороший вариант? Есть ли какие-нибудь варианты, которые я не заметил в данной задаче?
В sqlx подобное делалось реализацией интерфейса sql.Scanner / driver.Valuer Возможно стоит в ту сторону покопать
Обсуждают сегодня