對于go程序而言,輸出json是一項非常常見的任務。通過使用內置的json包,可以輕松地將結構體或其他數據類型轉換為json格式并返回給客戶端。
type User struct { Name string `json:"name"` Age int `json:"age"` } func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { user := User{Name: "John", Age: 30} jsonBytes, err := json.Marshal(user) if err != nil { fmt.Println("error:", err) return } w.Header().Set("Content-Type", "application/json") w.Write(jsonBytes) }) http.ListenAndServe(":8080", nil) }
在上面的示例中,定義了一個User結構體,其中Name和Age字段均被標記為json標簽,以便在將其轉換為json格式時將其作為鍵的值。接著定義了一個http的處理程序,當客戶端請求"/"時,返回一個json格式的User實例。
在取得要返回的json字節后,設置響應header的Content-Type為application/json,以便告知客戶端響應內容的類型。最后通過http.ResponseWriter的Write方法將json字節流寫回客戶端。
總而言之,使用go編寫返回json數據的程序非常簡單,只需要導入標準庫的json包并將數據轉換為合適的結構體即可。返回響應時,需要設置Content-Type為application/json的header,以確保客戶端能夠正確地解析響應內容。