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

我有一个通过 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

    }]

}


紫衣仙女
浏览 188回答 1
1回答

一只甜甜圈

正如@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}})
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go