Я разбираю составную форму из echo.Context. Я получаю значение среза ([]string) с помощью form.Value. Это возвращает значение с двойными фигурными скобками. (например, [["this","something"]]).
Я попытался прочитать значение без среза (string), и оно возвращается правильно.
Это анализирует форму из c echo.Context
// Parse the Multipart form
form, err := c.MultipartForm()
if err != nil {
return dataModel, err
}
Это извлекает значение из формы.
product := form.Value["products"]
if len(product) > 0 {
dataModel.Product = form.Value["products"]
}
dataModel определяет структуру JSON следующим образом:
// LockRequest is the model for incoming lock requests
type LockRequest struct {
Product []string `json:"products" form:"products" query:"products"`
}
Значение, которое возвращает dataModel.Product, равно [["crm","something"]]. Вероятно, он создает список списка. Я хочу, чтобы он вернулся ["crm","something"].
Ожидается: ["crm","something"]
Актуально: [["crm","something"]]
Не могли бы вы добавить часть html? Что enctype вы используете?
Что-то не складывается, потому что (согласно вашему определению структуры) LockRequest.Productявляется a []string. В каком контексте вы видите «ломтик ломтиков»?
Простая печать form.Value["products"] возвращает [["crm","something"]].

Я понял, что неправильно сворачиваю данные.
curl -XPOST -H 'Content-Type: multipart/form-data' -F 'products=crm,something' http://localhost:50051/lockHandler
вместо
curl -XPOST -H 'Content-Type: multipart/form-data' -F 'products = "crm","something"' http://localhost:50051/lockHandler
работал на меня.
Включите код, который создает неожиданный вывод.