概述:golang 的 echo 框架,参数是一段 Json 的数组,但会得到错误信息 binding element must be a struct
代码示意如下:
package users
import (
"github.com/labstack/echo/v4"
)
type (
RequestBody struct {
Id int `json:"id"`
Name string `json:"name"`
Age Int `json:"age"`
}
}
func Person(c echo.Context) error {
var user []RequestBody
if err := c.Bind(&user); err != nil {
return err.Error() // 此处为示意
}
}
参数 Json 如下:
[
{
"id": 1,
"name": "xiaoming",
"age": 13
},
{
"id": 2,
"name": "xiaohong",
"age": 19
}
]
执行此代码会得到错误信息:binding element must be a struct
求问,在 echo 框架中,接收 Json 数组,正确的方法应该怎样?
如果传递的数据是form表单形式,用
c.Bind
是可以的。单传递Json数据,那请求的
Content-Type
应该是application/json
吧? 这样的话就不能使用 Bind,而需要接受raw格式的数据流方法,可以用用到ioutil.ReadAll
去获取数据,获取到Json字符串之后,再去解析成对应的json结构。参考代码: