在Golang中,可以使用encoding/json
包来将SQL行打印为JSON格式。下面是一个示例代码:
package main
import (
"database/sql"
"encoding/json"
"fmt"
"log"
_ "github.com/go-sql-driver/mysql"
)
type SQLRow struct {
ID int `json:"id"`
Name string `json:"name"`
Email string `json:"email"`
}
func main() {
// 连接数据库
db, err := sql.Open("mysql", "username:password@tcp(localhost:3306)/database")
if err != nil {
log.Fatal(err)
}
defer db.Close()
// 执行SQL查询
rows, err := db.Query("SELECT * FROM users")
if err != nil {
log.Fatal(err)
}
defer rows.Close()
// 构建SQLRow切片
var sqlRows []SQLRow
// 遍历查询结果
for rows.Next() {
var row SQLRow
err := rows.Scan(&row.ID, &row.Name, &row.Email)
if err != nil {
log.Fatal(err)
}
sqlRows = append(sqlRows, row)
}
// 将SQL行转换为JSON格式
jsonData, err := json.Marshal(sqlRows)
if err != nil {
log.Fatal(err)
}
// 打印JSON数据
fmt.Println(string(jsonData))
}
上述代码中,首先使用database/sql
包连接到MySQL数据库,并执行SQL查询获取结果集。然后,定义了一个SQLRow
结构体来表示每一行的数据,并使用json
标签指定了JSON字段的名称。接着,通过遍历查询结果,将每一行的数据存储到sqlRows
切片中。最后,使用json.Marshal
函数将sqlRows
切片转换为JSON格式的字节数组,并通过fmt.Println
函数打印JSON数据。
请注意,上述示例中使用的是MySQL数据库,你需要根据实际情况修改连接字符串和SQL查询语句。另外,你还需要在代码中导入github.com/go-sql-driver/mysql
包来支持MySQL数据库的连接。
推荐的腾讯云相关产品:腾讯云数据库MySQL、腾讯云云服务器CVM。
腾讯云数据库MySQL产品介绍链接地址:https://cloud.tencent.com/product/cdb
腾讯云云服务器CVM产品介绍链接地址:https://cloud.tencent.com/product/cvm
领取专属 10元无门槛券
手把手带您无忧上云