gpt4 book ai didi

mysql - Golang - 从 MySQL 检索多个结果,然后将它们显示为 JSON

转载 作者:数据小太阳 更新时间:2023-10-29 03:33:21 24 4
gpt4 key购买 nike

最近,我正在学习 Go (Golang)。我正在尝试使用 Martini 和 jwt-go 制作一个简单的网络服务。我没有发现检索单行数据并放入 JSON 作为响应有任何困难。但是,在处理多行时,情况就完全不同了。基本上,我指的是已接受的答案 here.

这是我的代码片段:

m.Get("/users", func(params martini.Params, r render.Render) {
db, err := sql.Open("mysql", "root:@/sirat_v2")
if err != nil {
panic(err.Error())
}
defer db.Close()

rows, err := db.Query("SELECT user_id, nama FROM `users` WHERE password = ?", "asdfasdf")
defer rows.Close()

cols, err := rows.Columns()
if err != nil {
panic(err.Error())
}

partages := make([]*Partage, 0, 10)
var user_id int
var nama string
for rows.Next() {
err = rows.Scan(&user_id, &nama)
if err != nil { /* error handling */
}
partages = append(partages, &Partage{user_id, nama})
}
})

尝试构建时,出现错误,指出 Partage 未定义。

最佳答案

出现该错误是因为您使用 struct Partage 创建了一个对象,但您还没有声明它。

type Partage struct {
user_id string
nama string
}

But how do I display the result as JSON response? I've tried r.JSON(200, partages) but the results aren't displayed

ma​​rtini 中,您可以使用 r.JSON()rows 打印为 JSON

m.Get("/users", func(params martini.Params, r render.Render) {
// ...

r.JSON(200, map[string]interface{}{
data: rows
})
})

关于mysql - Golang - 从 MySQL 检索多个结果,然后将它们显示为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33072861/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com