分享
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。
```go
// *sql.Rows 转换为 []map[string]interface{}类型
func rows2maps(rows *sql.Rows) (res []map[string]interface{}) {
defer rows.Close()
cols, _ := rows.Columns()
cache := make([]interface{}, len(cols))
// 为每一列初始化一个指针
for index, _ := range cache {
var a interface{}
cache[index] = &a
}
for rows.Next() {
rows.Scan(cache...)
row := make(map[string]interface{})
for i, val := range cache {
// 处理数据类型
v := *val.(*interface{})
switch v.(type) {
case []uint8:
v = string(v.([]uint8))
case nil:
v = ""
}
row[cols[i]] = v
}
res = append(res, row)
}
return res
}
```
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信3198 次点击
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传