go binding如何绑定结构体数组

go 的gin框架自带的bingding用法如何绑定结构体数组呢?
比如一个批量接口, 传参数[{"name":"go", "age":15}]
那么go的 接收结构体应该如何写呢

我的写法是:

type Test struct {
    Data []Info `form:"data"`
}

type Info struct {
    Name string `form:"name"`
    Age int `form:"age"`
}

然后绑定写法:

var p param.Test
var err error
if err = c.ShouldBind(&p); err != nil {
}

可是这种写法是不对的, 那么应该如何写呢

阅读 9.1k
2 个回答

与写法无关,与你提交的数据相关。Test类型结构体标签是data
你提交的数据必须要以data为键,该键对应的值为你给出的提交Info类型数组数据,像下面这样
data:=[{"name":"go", "age":15}]
简而言之这种绑定要求你前端提交数据要有正确的嵌套层次(与被绑定的结构体类型保持一致)
image.png

新手上路,请多包涵

这个我试过了。是支持嵌套绑定的。嵌套绑定也能是识别规则。

推荐问题
宣传栏