我正在尝试从 postgresql jsonb 和非 jsonb 列读取一些数据,然后解组我得到嵌套结构的响应字符串。我能够以字符串形式检索数据。但我不知道如何将其解组到结构中。package mainimport ( "database/sql" "fmt" "log" "strconv" _ "github.com/lib/pq")type Token struct { Name string Value string Path string HttpOnly bool}type Session struct { Phishlet string `json:"phishlet,omitempty"` LandingURL string `json:"landing_url,omitempty"` Username string `json:"username,omitempty"` Password string `json:"password,omitempty"` Custom map[string]string `json:"custom,omitempty"` Tokens map[string]map[string]*Token `json:"tokens,omitempty"` SessionId string `json:"session_id,omitempty"` UserAgent string `json:"useragent,omitempty"` RemoteAddr string `json:"remote_addr,omitempty"` CreateTime int64 `json:"create_time,omitempty"` UpdateTime int64 `json:"update_time,omitempty"`}type Sessions struct { Id int64 UserId []byte Session Session}func main() { db, err := sql.Open("postgres", "postgres://user:pass@localhost:port/db") if err != nil { log.Fatal(err) } rows, err := db.Query("SELECT id, user_id,session FROM sessions ORDER BY id") defer rows.Close() columns, err := rows.Columns() if err != nil { log.Fatal(err) } count := len(columns) values := make([]interface{}, count) scanArgs := make([]interface{}, count) for i := range values { scanArgs[i] = &values[i] }
1 回答
UYOU
TA贡献1878条经验 获得超4个赞
我认为这是 pq 驱动程序的预期行为
来自该驱动程序的文档:
pgx 包含对 Go 类型与 PostgreSQL JSON 和 JSONB 之间编组和解组的内置支持。
我过去曾使用 pgx 进行 jsonb 解组——效果良好。
- 1 回答
- 0 关注
- 155 浏览
添加回答
举报
0/150
提交
取消