Heim > Artikel > Backend-Entwicklung > Warum gibt mein Go-HTTP-Server leere Antworten mit dem Inhaltstyp „text/plain“ zurück?
Beheben von JSON-Antwortproblemen in Go: Ein umfassender Leitfaden
In diesem Artikel befassen wir uns mit einem Problem, das beim Erstellen von JSON-Antworten in auftritt Gehen Sie und erkunden Sie die Lösung.
Problemstellung:
Ein Entwickler ist beim Erstellen eines einfachen HTTP-Servers und beim Verarbeiten von JSON-Antworten auf Probleme gestoßen. Trotz der Verwendung von Code, der den online gefundenen Beispielen ähnelt, wurde eine leere Antwort mit dem Inhaltstyp „text/plain“ zurückgegeben.
Analyse:
Ein sorgfältiger Vergleich von Der Code des Entwicklers und das Arbeitsbeispiel zeigten einen subtilen Unterschied: Die Variablen in der Antworttextstruktur wurden im Code des Entwicklers nicht großgeschrieben. Dies behindert den JSON-Marshalling-Prozess, da Go erfordert, dass Strukturfeldnamen exportiert (großgeschrieben) werden, um in JSON serialisiert zu werden.
Lösung:
Um dieses Problem zu beheben Problem müssen die Variablen in der ResponseCommands-Struktur großgeschrieben werden, wie unten gezeigt:
<code class="go">type ResponseCommands struct { Key string Value bool }</code>
Mit dieser Änderung erkennt Go die Strukturfelder ordnungsgemäß und serialisiert sie in JSON. Die resultierende Antwort enthält nun die erwarteten JSON-Daten und der Inhaltstyp-Header wird korrekt auf „application/json“ gesetzt.
Das obige ist der detaillierte Inhalt vonWarum gibt mein Go-HTTP-Server leere Antworten mit dem Inhaltstyp „text/plain“ zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!