关闭

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

1707人阅读 评论(0) 收藏 举报
分类:

代码出处: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 
}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:7207959次
    • 积分:22442
    • 等级:
    • 排名:第327名
    • 原创:269篇
    • 转载:335篇
    • 译文:0篇
    • 评论:513条
    博主写的书已经上市
    个人资料
    本人曾健生,家乡是佛山,现在广州工作,《App后台开发运维和架构实践》一书作者,曾经负责社交app "ekeo"和"米信"的后端开发,目前就职于云后端平台bmob从事云服务方面的开发工作(想了解bmob点击这里

    qq:190678908
    本人的微信公众号"app后端"
    app后端
    博客专栏
    最新评论