golang mysql json_golang: 把sql结果集以json格式输出

代码出处:http://stackoverflow.com/questions/19991541/dumping-mysql-tables-to-json-with-golang

func getJSON(sqlString string) (string, error) {

stmt, err := db.Prepare(sqlString)

if err != nil {

return nil, err

}

defer stmt.Close()

rows, err := stmt.Query()

if err != nil {

return nil, err

}

defer rows.Close()

columns, err := rows.Columns()

if err != nil {

return "", err

}

count := len(columns)

tableData := make([]map[string]interface{}, 0)

values := make([]interface{}, count)

valuePtrs := make([]interface{}, count)

for rows.Next() {

for i := 0; i < count; i++ {

valuePtrs[i] = &values[i]

}

rows.Scan(valuePtrs...)

entry := make(map[string]interface{})

for i, col := range columns {

var v interface{}

val := values[i]

b, ok := val.([]byte)

if ok {

v = string(b)

} else {

v = val

}

entry[col] = v

}

tableData = append(tableData, entry)

}

jsonData, err := json.Marshal(tableData)

if err != nil {

return "", err

}

fmt.Println(string(jsonData))

return string(jsonData), nil

}

有疑问加站长微信联系(非本文作者)

5c5fbae790ec0313d6ee17e8b3dd9ba1.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值