我有以下结构:
type MyTable struct{
DBColA []byte `db:"cola" json:"-"`
ColA string `json:"cola"`
DBColB []byte `db:"colb" json:"-"`
ColB string `json:"colb"`
}
我映射到 []byte [以更好地处理我的 sql 中的空值][1]
当我获取行时,我需要将其输出为 json。为了做到这一点,我将 []byte 转换为字符串:
var rows []*MyTable
if _, err := Session.Select(&rows, sql, args...); err != nil {
log.Println(err)
}
for _, row := range rows{
row.ColA = string(row.DBColA)
row.ColB = string(row.DBColB)
}
w.Header().Set("Content-Type", "application/json")
if err := json.NewEncoder(w).Encode(rows); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
}
在我的结构中包含 DBColA 和 ColA 然后将 DBColA 转换为字符串似乎非常低效......我有很多列。有没有更好的办法?
[1]: https://github.com/go-sql-driver/mysql/wiki/Examples
相关分类