使用 JSON 的 HTTP 回應
在 Go 中使用 JSON 建立 HTTP 回應時,有必要確保資料格式正確。可能出現的一個問題是文字/純內容類型的空響應。這通常表示 JSON 編碼或用於表示資料的結構存在問題。
在問題中描述的情況下,提供的程式碼嘗試使用以下結構發送JSON 回應:
<code class="go">type ResponseCommands struct { key string value bool }</code>
但是,正如答案正確指出的那樣,該結構中的變數不會導出,這意味著它們以小寫字母開頭。這可能會導致 JSON 編碼出現問題,因為需要匯出 JSON 鍵(以大寫字母開頭)。
要解決此問題,應修改結構以匯出變數:
<code class="go">type ResponseCommands struct { Key string Value bool }</code>
此外,在寫入回應資料之前,必須確保 Content-Type 標頭設定為 application/json。以下程式碼更新處理程序函數以包含此修復:
<code class="go">func handler(rw http.ResponseWriter, req *http.Request) { responseBody := ResponseCommands{"BackOff", false} data, err := json.Marshal(responseBody) if err != nil { http.Error(rw, err.Error(), http.StatusInternalServerError) return } rw.WriteHeader(200) rw.Header().Set("Content-Type", "application/json") rw.Write(data) }</code>
透過進行這些更改,程式碼應正確產生具有適當內容類型的 JSON 回應。
以上是為什麼我的 Go HTTP 回應回傳文字/純內容類型的空 JSON?的詳細內容。更多資訊請關注PHP中文網其他相關文章!