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

如何在 Gin 中将结构作为单元素 JSON 数组返回?

如何在 Gin 中将结构作为单元素 JSON 数组返回?

Go
紫衣仙女 2023-01-03 15:35:39
我有一个通过 ID 返回产品的函数,但问题是它没有将其作为数据数组返回func GetProductsById(c *gin.Context) {    var Product models.Products    if err := config.DB.Where("id=?", c.Query("prod_id")).First(&Product).Error; err != nil {        c.JSON(http.StatusInternalServerError, err.Error())    } else {        c.JSON(http.StatusOK, gin.H{"data": &Product})    }}json 响应{    "data": {        "ID": 1,        ...        "Feedback": null    }}我要这个:{    "data": [{        "ID": 1,        ...        "Feedback": null    }]}
查看完整描述

1 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

正如@mkopriva 所建议的那样,要轻松地将结构作为单元素 JSON 数组返回,请将其包装在切片文字中。


var p models.Product

// ...

c.JSON(http.StatusOK, gin.H{"data": []models.Product{p}})

如果不想为切片项指定特定类型,可以使用[]interface{},或者[]any从 Go 1.18 开始


c.JSON(http.StatusOK, gin.H{"data": []interface{}{p}})

// c.JSON(http.StatusOK, gin.H{"data": []any{p}})


查看完整回答
反对 回复 2023-01-03
  • 1 回答
  • 0 关注
  • 160 浏览
慕课专栏
更多

添加回答

举报

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