为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
交互式爱情 2021-11-15 15:58:49
最近在学习Go(Golang)。我正在尝试使用 Martini 和 jwt-go 制作一个简单的 Web 服务。我在检索单行数据并输入 JSON 作为响应时没有发现任何困难。但是,在处理多行时,情况就完全不同了。基本上,我指的是这里接受的答案。这是我的一段代码: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 未定义。
查看完整描述

1 回答

?
潇湘沐

TA贡献1816条经验 获得超6个赞

出现错误是因为您使用 structPartage创建对象,但您尚未声明它。


type Partage struct {

    user_id string

    nama string

}

但是如何将结果显示为 JSON 响应?我试过 r.JSON(200, partages) 但结果没有显示


在马提尼酒中,您可以使用r.JSON()以rowsJSON 格式打印


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

    // ... 


    r.JSON(200, map[string]interface{}{

        data: rows

    })

})


查看完整回答
反对 回复 2021-11-15
  • 1 回答
  • 0 关注
  • 318 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信