Heim  >  Artikel  >  Backend-Entwicklung  >  Warum gibt mein Go-HTTP-Server leere JSON-Antworten zurück?

Warum gibt mein Go-HTTP-Server leere JSON-Antworten zurück?

Susan Sarandon
Susan SarandonOriginal
2024-10-27 16:57:31161Durchsuche

Why Does My Go HTTP Server Return Empty JSON Responses?

JSON-Antworten in Go: Probleme mit leeren Antworten lösen

In Go kann das Erstellen von HTTP-Antworten mit JSON-Inhalten eine Herausforderung darstellen, insbesondere wenn es um Nullergebnisse geht. Ziel dieses Artikels ist es, ein häufiges Problem anzugehen, das beim Versuch, JSON-Antworten zu erstellen, auftritt.

Problemstellung

Ein Anfänger in Go versucht, einen einfachen HTTP-Server mit JSON-Antwortfunktionalität zu implementieren. Der Server gibt jedoch durchweg eine leere Antwort mit dem Inhaltstyp „text/plain; charset=utf-8“ zurück. Der Entwickler hat seinen Code mit einem Online-Beispiel verglichen, konnte jedoch keine Unterschiede feststellen.

Lösung

Der Kern des Problems liegt in der Sichtbarkeit der Felder der Struktur. In Go müssen Strukturfelder exportiert werden (in Großbuchstaben), damit sie für JSON-Marshalling zugänglich sind.

Beispielcode (Original/Falsch):

<code class="go">type ResponseCommands struct {
    key   string
    value bool
}</code>

Beispielcode (korrigiert):

<code class="go">type ResponseCommands struct {
    Key   string
    Value bool
}</code>

Wenn die Felder exportiert werden, kann der JSON-Encoder ordnungsgemäß auf ihre Werte zugreifen und diese codieren. Diese einfache, aber wichtige Änderung behebt das Problem und ermöglicht es dem Server, gültige JSON-Antworten zurückzugeben.

Das obige ist der detaillierte Inhalt vonWarum gibt mein Go-HTTP-Server leere JSON-Antworten zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn