Работал ли с полем типа jsonb

«Работал ли с полем типа jsonb» — вопрос из категории Базы данных, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, работал. В Go для работы с jsonb (PostgreSQL) удобно использовать database/sql вместе с драйвером pgx или lib/pq.

Пример:

type User struct {
    ID   int
    Data map[string]interface{} `json:"data"`
}

// Чтение jsonb
var user User
err := db.QueryRow("SELECT id, data FROM users WHERE id = $1", 1).Scan(&user.ID, &user.Data)

// Запись jsonb
data := map[string]interface{}{"name": "Alice", "age": 30}
_, err = db.Exec("INSERT INTO users (data) VALUES ($1)", data)

Для сложных структур можно использовать json.Marshal/Unmarshal.
Важно: некоторые драйверы требуют преобразования в []byte перед записью.