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: 30 * time.Second, WriteTimeout: 30 * time.Second, MaxHeaderBytes: 1 << 20, } 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[0 : len(row)-1] row += "}" list = list + row + "," } list = list[0 : len(list)-1] list += "]" fmt.Println(list) return list }
调用url : http://localhost:7080/getuser
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构