如何在 Echo 框架中绑定 multipart/form-data 数组?

How to bind multipart/form-data array in Echo framework?

我正在使用 flutter 和 Go Echo 框架编写一个 api 服务器,我想将数据从 flutter 发送到 Go 并保存,但是 c.bind() 在 Go 中不起作用:

type _getData struct {
    Title    string      `json:"title" form:"title"`
    Address  string      `json:"address" form:"address"`
    Location string      `json:"location" form:"location"`
    MapId    uint        `json:"map_id" form:"map_id"`
    Date     _customTime `json:"date" form:"date"`
    Pages    []struct {
        Order       int    `json:"order" form:"order"`
        Description string `json:"description" form:"description"`
    } `json:"pages" form:"pages"`
    Tags []struct {
        TagName string `json:"tag_name" form:"tag_name"`
        ID      string `json:"id" form:"id"`
    } `json:"tags" form:"tags"`
}

type _customTime struct {
    time.Time
}

按照上面的代码创建一个结构体,并如下所示绑定它:

d := &echo.DefaultBinder{}
var aa _getData
d.Bind(&aa, c)
fmt.Println(c.Request().Form)
fmt.Println(aa)
----- fmt.Println(c.Request().Form)'s result is -----
ap[address:[미국 캘리포니아 산타클라라 카운티 쿠퍼티노 ] date:[2021-10-01] location: 
[37.330672396748554 -122.03014377504589] pages[0][description]:[123123] pages[0] 
[order]:[0] tags[0][tag_name]:[sdf] title:[123123]]

----- fmt.Println(aa)'s result is -----
{123123 미국 캘리포니아 산타클라라 카운티 쿠퍼티노  37.330672396748554 -122.03014377504589 0 
2021-10-01 00:00:00 +0900 KST [] []}

页面和标签数据未​​绑定。 其他字段是绑定的,但为什么不只是多数组字段?我该如何绑定?我是初学者,如有任何建议,我们将不胜感激。

Echo 框架不支持开箱即用的表单数据绑定数组。

您可以改用 json 或使用第 3 方库。参见 or and github issue https://github.com/labstack/echo/issues/1644