gin bindJson 对象数组
gin bindJson array of objects
我想像这样绑定一个 json 对象数组:
[
{
"id": "someid"
},
{
"id": "anotherid"
}
]
这是我的模型
type DeleteByID struct {
ID string `json:"id" binding:"required"`
}
我用gin来处理对象
var stock []DeleteByID
if err := ctx.ShouldBindJSON(&stock); err != nil {
return err
}
问题是它不bind/check我的对象。
您可以像这样使用 json.Unmarshal()
来实现此目的:
var stock []DeleteByID
body, err := ioutil.ReadAll(c.Request.Body)
if err != nil {
c.AbortWithError(400, err)
return
}
err = json.Unmarshal(body, &stock)
if err != nil {
c.AbortWithError(400, err)
return
}
c.String(200, fmt.Sprintf("%#v", stock))
我想像这样绑定一个 json 对象数组:
[
{
"id": "someid"
},
{
"id": "anotherid"
}
]
这是我的模型
type DeleteByID struct {
ID string `json:"id" binding:"required"`
}
我用gin来处理对象
var stock []DeleteByID
if err := ctx.ShouldBindJSON(&stock); err != nil {
return err
}
问题是它不bind/check我的对象。
您可以像这样使用 json.Unmarshal()
来实现此目的:
var stock []DeleteByID
body, err := ioutil.ReadAll(c.Request.Body)
if err != nil {
c.AbortWithError(400, err)
return
}
err = json.Unmarshal(body, &stock)
if err != nil {
c.AbortWithError(400, err)
return
}
c.String(200, fmt.Sprintf("%#v", stock))