"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment analyser des fichiers et des données JSON à partir d'une requête HTTP dans Golang ?

Comment analyser des fichiers et des données JSON à partir d'une requête HTTP dans Golang ?

Publié le 2024-11-13
Parcourir:555

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

Analyse de fichiers et de données JSON à partir d'une requête HTTP dans Go

Dans une application Web, il est courant de recevoir à la fois des fichiers et des données JSON dans une requête HTTP. Pour traiter avec succès ces éléments, il est essentiel de comprendre comment les analyser efficacement.

Le problème

Considérez un scénario dans lequel vous disposez d'un frontal AngularJS qui envoie une requête à un backend Go. La requête contient un fichier (« file ») et des données JSON (« doc »). Votre objectif est d'analyser à la fois le fichier PDF et les données JSON de cette requête.

La solution

Pour résoudre ce problème, vous devez traiter séparément le fichier et les données JSON. En utilisant http.(*Request).MultipartReader() et en itérant sur les parties à l'aide de NextPart(), vous pouvez extraire et analyser chaque élément.

Étape 1 : Créer un lecteur multipart

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

Étape 2 : Traiter chaque partie

Pour chaque partie de la requête en plusieurs parties :

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

Étape 3 : Extraire les données du fichier

Si la pièce est un fichier (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
}

Étape 4 : Analyser les données JSON

Si la pièce contient des données JSON (part.FormName() == "doc") :

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

Étape 5 : Post-traitement

Après avoir analysé le fichier et les données JSON, vous pouvez effectuer tout post-traitement nécessaire, comme l'enregistrer dans une base de données ou envoyer une réponse au client .

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729747542. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3