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

转载 2016年08月30日 16:48:11

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


相关文章推荐

记golang数据库查询封装的坑

记golang数据库查询封装的坑前文golang接触也有一段时间,项目中有用到web api,基本上就是post json格式的,本想用java来写,刚下手想到java太臃肿,各种繁琐。 觉得用gol...

MYSQL简语---查询数据库并输出JSON

在最近的项目中,需要对相应的数据进行处理事输出JSON格式,以让手机解析。以下为相应的验证过后的代码。 1、共用代码—–数据库连接**$con = mysql_connect("localhost",...

java获取mysql数据,resultSetToJson,结果集转换成json数组

//jsp 写方法 前面要加   感叹号..... // json数组   JSONArray array = new JSONArray(); // 获取列数   Resul...

go json数据格式化输出

package main import ( "bytes" "encoding/json" "log" "os" ) func main() { type...

golang通过反射使用json字符串调用struct的指定方法及返回json结果

golang通过反射使用json字符串调用struct的指定

[Go]通过HTTP获取信息返回JSON

用 HTTP.GET 从开放 API 中查询深圳通信息,然后将 JSON 数据存入结构体中,再格式化输出。注意:获取的并不是实时的深圳通信息Warm upstrconv.ParseUint: 解析无符...

golang 结构体和 json 相互转换时的 key 匹配问题

使用json.Unmarshal时,结构体的每一项必须是导出项(import field)也是就说结构体的key的首字母必须大写。package mainimport "fmt" import "en...
  • bdss58
  • bdss58
  • 2016年12月20日 15:43
  • 3276

go语言JSON处理

https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/07.2.md JSON(Javasc...

golang查询数据后,获取内容出错问题

err = rows.Scan(&user.Id,&user.Name) if err != nil { fmt.Println(err) } fmt.Println("content:", user...

JSON(04)PHP的JSON处理函数及将MySQL结果集快速转为JSON的方法

我现在弄Web系统,基本上都是JQuery做UI,PHP负责与数据库的交互。两者间用JSON做为数据交换格式。 非常方便,再也不用弄那些框架,模板之类的重型武器了。   在这列PHP与JSON的处...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:golang: 把sql结果集以json格式输出
举报原因:
原因补充:

(最多只允许输入30个字)