«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как анализировать файлы и данные JSON из HTTP-запроса в Golang?

Как анализировать файлы и данные JSON из HTTP-запроса в Golang?

Опубликовано 13 ноября 2024 г.
Просматривать:331

How to Parse Files and JSON Data from an HTTP Request in Golang?

Разбор файлов и данных JSON из HTTP-запроса в Go

В веб-приложении обычно в HTTP-запросе получаются и файлы, и данные JSON. Чтобы успешно обрабатывать эти элементы, важно понимать, как эффективно их анализировать.

Проблема

Рассмотрим сценарий, в котором у вас есть интерфейс AngularJS, который отправляет запрос на сервер Go. Запрос содержит файл («файл») и данные JSON («doc»). Ваша цель — проанализировать PDF-файл и данные JSON из этого запроса.

Решение

Чтобы решить эту проблему, вам необходимо отдельно обработать файл и данные JSON. Используя http.(*Request).MultipartReader() и перебирая части с помощью NextPart(), вы можете извлечь и проанализировать каждый элемент.

Шаг 1. Создайте средство чтения нескольких частей

mr, err := r.MultipartReader()
if err != nil {
    http.Error(w, err.Error(), http.StatusInternalServerError)
    return
}

Шаг 2. Обработка каждой части

Для каждой части в многочастном запросе:

part, err := mr.NextPart()
if err == io.EOF {
    break
}
if err != nil {
    http.Error(w, err.Error(), http.StatusInternalServerError)
    return
}

Шаг 3. Извлечение данных файла

Если часть является файлом (part.FormName() == "file"):

outfile, err := os.Create("./docs/"   part.FileName())
if err != nil {
    http.Error(w, err.Error(), http.StatusInternalServerError)
    return
}
defer outfile.Close()

_, err = io.Copy(outfile, part)
if err != nil {
    http.Error(w, err.Error(), http.StatusInternalServerError)
    return
}

Шаг 4. Анализ данных JSON

Если часть содержит данные JSON (part.FormName() == "doc"):

jsonDecoder := json.NewDecoder(part)
err = jsonDecoder.Decode(&doc)
if err != nil {
    http.Error(w, err.Error(), http.StatusInternalServerError)
    return
}

Шаг 5. Постобработка

После анализа файла и данных JSON вы можете выполнить любую необходимую постобработку, например сохранить ее в базе данных или отправить ответ клиенту. .

Заявление о выпуске Эта статья перепечатана по адресу: 1729747542. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3