Heim >Backend-Entwicklung >Golang >Wie analysiere ich Dateien und JSON-Daten aus einer HTTP-Anfrage in Golang?
In einer Webanwendung ist es üblich, sowohl Dateien als auch JSON-Daten in einer HTTP-Anfrage zu empfangen. Um diese Elemente erfolgreich zu verarbeiten, ist es wichtig zu verstehen, wie man sie effektiv analysiert.
Stellen Sie sich ein Szenario vor, in dem Sie ein AngularJS-Frontend haben, das eine Anfrage an ein Go-Backend sendet. Die Anfrage enthält eine Datei („file“) und JSON-Daten („doc“). Ihr Ziel ist es, sowohl die PDF-Datei als auch die JSON-Daten aus dieser Anfrage zu analysieren.
Um dieses Problem zu beheben, müssen Sie sowohl die Datei als auch die JSON-Daten separat verarbeiten. Durch die Verwendung von http.(*Request).MultipartReader() und das Durchlaufen der Teile mit NextPart() können Sie jedes Element extrahieren und analysieren.
<code class="go">mr, err := r.MultipartReader() if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return }</code>
Für jedes Teil in der mehrteiligen Anfrage:
<code class="go">part, err := mr.NextPart() if err == io.EOF { break } if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return }</code>
Wenn es sich bei dem Teil um eine Datei handelt ( part.FormName() == "file"):
<code class="go">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 }</code>
Wenn das Teil JSON-Daten enthält (part.FormName() == "doc" ):
<code class="go">jsonDecoder := json.NewDecoder(part) err = jsonDecoder.Decode(&doc) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return }</code>
Nachdem Sie sowohl die Datei- als auch die JSON-Daten analysiert haben, können Sie alle erforderlichen Nachbearbeitungen durchführen, z. B. das Speichern in einer Datenbank oder das Senden einer Antwort an den Kunden.
Das obige ist der detaillierte Inhalt vonWie analysiere ich Dateien und JSON-Daten aus einer HTTP-Anfrage in Golang?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!