Как получить form.Value типа []string из echo.Context.MultipartForm()

Я разбираю составную форму из 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"]]

Включите код, который создает неожиданный вывод.

Peter 30.03.2019 06:54

Не могли бы вы добавить часть html? Что enctype вы используете?

Nik 30.03.2019 12:43

Что-то не складывается, потому что (согласно вашему определению структуры) LockRequest.Productявляется a []string. В каком контексте вы видите «ломтик ломтиков»?

ford 30.03.2019 14:55

Простая печать form.Value["products"] возвращает [["crm","something"]].

jazz 01.04.2019 21:15
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
API ввода вопросов - это полезный инструмент для интеграции моделей машинного обучения, таких как ChatGPT, в приложения, требующие обработки...
0
4
740
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я понял, что неправильно сворачиваю данные.

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

работал на меня.

Другие вопросы по теме