返回值时映射文字中缺少键
Missing key in map literal when returning value
我正在尝试在 html 上显示一个 json 数组,但我需要在变量前加上一个名称:
func main() {
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
var mjson []model.Author
db, err := sql.Open("mysql", "root:@tcp(localhost)/bibliotecagnommo")
if err != nil {
fmt.Println(err)
}
datos, err2 := db.Query("SELECT * FROM author;")
if err2 != nil {
fmt.Println(err2)
}
for datos.Next() {
var id, nombre, apellido string
err3 := datos.Scan(&id, &nombre, &apellido)
if err3 != nil {
fmt.Println(err3)
}
autor := new(model.Author)
autor.Id = id
autor.FirstName = nombre
autor.LastName = apellido
//autorJsonString := string(autorJson);
mjson = append(mjson, *autor)
}
c.JSON(200, gin.H{
//This line of code "wordToAvoid":mjson,
})
})
r.Run()
}
有没有办法避免在前面加一个词?
因为当我在 html 上打印 var 时,它显示了我输入的单词。
只需更换
c.JSON(200, gin.H{
//This line of code "wordToAvoid":mjson,
})
和
c.JSON(200, mjson)
注意:gin.H
的类型为 map[string]interface{}
,因此您需要传递一个映射
即那里的钥匙是强制性的。但是如果你看到,方法 JSON 接受 int
和 interface{}
,所以只需传递一个接口{},即你的对象 mjson
.
我正在尝试在 html 上显示一个 json 数组,但我需要在变量前加上一个名称:
func main() {
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
var mjson []model.Author
db, err := sql.Open("mysql", "root:@tcp(localhost)/bibliotecagnommo")
if err != nil {
fmt.Println(err)
}
datos, err2 := db.Query("SELECT * FROM author;")
if err2 != nil {
fmt.Println(err2)
}
for datos.Next() {
var id, nombre, apellido string
err3 := datos.Scan(&id, &nombre, &apellido)
if err3 != nil {
fmt.Println(err3)
}
autor := new(model.Author)
autor.Id = id
autor.FirstName = nombre
autor.LastName = apellido
//autorJsonString := string(autorJson);
mjson = append(mjson, *autor)
}
c.JSON(200, gin.H{
//This line of code "wordToAvoid":mjson,
})
})
r.Run()
}
有没有办法避免在前面加一个词?
因为当我在 html 上打印 var 时,它显示了我输入的单词。
只需更换
c.JSON(200, gin.H{
//This line of code "wordToAvoid":mjson,
})
和
c.JSON(200, mjson)
注意:gin.H
的类型为 map[string]interface{}
,因此您需要传递一个映射
即那里的钥匙是强制性的。但是如果你看到,方法 JSON 接受 int
和 interface{}
,所以只需传递一个接口{},即你的对象 mjson
.