我是这段代码。
package main
import (
"github.com/gin-gonic/gin"
_ "github.com/go-sql-driver/mysql"
)
func divisionsHandler(c *gin.Context) {
divisions := getDivisionRows()
json := make(map[int]string)
for divisions.Next() {
var d Division
err := divisions.Scan(&d.id, &d.name)
json[d.id] = d.name
if err != nil {
panic(err.Error())
}
}
c.JSON(200, json)
}
结果是
{
1: "games",
2: "technology",
3: "tekk",
4: "home entertainment",
5: "toys & stationery"
}
我试图将这个json转换成像
这样的东西{
[{
"id": 1,
"name": "games"
},
...
]
}
但是如何?
答案 0 :(得分:1)
所以你想要一个json数组而不是一个json对象?
为什么不简单地制作map[int]string
?
[]Division
list := []Division{}
for divisions.Next() {
var d Division
err := divisions.Scan(&d.id, &d.name)
list = append(list, d)
if err != nil {
panic(err.Error())
}
}
您需要将字段名称更改为ID
和Name
,以便json包可以对它们进行序列化,但最终应该更像是:
[
{"ID":1,"Name":"Games},
...
]