golang获取数据表转换为json通用方法

package main

import (
"database/sql"
"fmt"
"log"
"net/http"
"time" _ "github.com/go-sql-driver/mysql"
)
import "strings" func main() {
http.HandleFunc("/getuser", getuser)
s := &http.Server{
Addr: ":7080",
ReadTimeout: * time.Second,
WriteTimeout: * time.Second,
MaxHeaderBytes: << ,
}
log.Fatal(s.ListenAndServe())
} func getuser(w http.ResponseWriter, r *http.Request) { w.Write([]byte(getuser_json()))
} func getuser_json() string {
db, err := sql.Open("mysql", "root:root@tcp(localhost:3306)/jeecg?charset=utf8")
if err != nil {
panic(err.Error())
}
defer db.Close() rows, err := db.Query("select * from t_s_user")
if err != nil {
panic(err.Error())
} columns, err := rows.Columns()
if err != nil {
panic(err.Error())
} values := make([]sql.RawBytes, len(columns)) scanArgs := make([]interface{}, len(values))
for i := range values {
scanArgs[i] = &values[i]
} list := "[" for rows.Next() {
err = rows.Scan(scanArgs...)
if err != nil {
fmt.Println("log:", err)
panic(err.Error())
} row := "{"
var value string
for i, col := range values {
if col == nil {
value = "NULL"
} else {
value = string(col)
} columName := strings.ToLower(columns[i]) cell := fmt.Sprintf(`"%v":"%v"`, columName, value)
row = row + cell + ","
}
row = row[ : len(row)-]
row += "}"
list = list + row + "," }
list = list[ : len(list)-]
list += "]"
fmt.Println(list)
return list
}

调用url : http://localhost:7080/getuser

上一篇:FusionCharts中仪表盘相关属性


下一篇:vi/vim 基本使用