gin bindJson 对象数组

Yok*_*ok0 4 go go-gin

我想绑定一个 json 对象数组,如下所示:

[
    {
        "id": "someid"
    },
    {
        "id": "anotherid"
    }
]
Run Code Online (Sandbox Code Playgroud)

这是我的模型

type DeleteByID struct {
    ID string `json:"id" binding:"required"`
}
Run Code Online (Sandbox Code Playgroud)

我使用 gin 来处理该对象

var stock []DeleteByID
if err := ctx.ShouldBindJSON(&stock); err != nil {
 return err
}
Run Code Online (Sandbox Code Playgroud)

问题是它没有绑定/检查我的对象。

mes*_*ati 5

您可以通过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))
Run Code Online (Sandbox Code Playgroud)