我有这段代码。
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"
},
...
]
}
但是如何呢?
最佳答案
所以你想要一个 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},
...
]
关于json - 如何在 json 中显示结构的映射键和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45483655/