在Go中,我們可以使用自帶的encoding/json包來(lái)將結(jié)構(gòu)體轉(zhuǎn)換為JSON格式的數(shù)據(jù),并使用http包將其返回給客戶(hù)端。這樣我們可以很方便地通過(guò)API傳遞數(shù)據(jù)。
下面是一個(gè)例子:type Person struct { Name string `json:"name"` Age int `json:"age"` } func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json") person := Person{"Tom", 22} json.NewEncoder(w).Encode(person) }) http.ListenAndServe(":8080", nil) }
上面的代碼首先定義了一個(gè)Person結(jié)構(gòu)體,具有Name和Age屬性,并為這些屬性設(shè)置了JSON標(biāo)簽。接下來(lái),它定義一個(gè)處理函數(shù),該函數(shù)將Person結(jié)構(gòu)體轉(zhuǎn)換為JSON格式,并將其寫(xiě)入http.ResponseWriter中。最后,我們使用http.ListenAndServe將此處理函數(shù)作為參數(shù)傳遞給服務(wù)器。
該方法適用于任何以結(jié)構(gòu)體為基礎(chǔ)的數(shù)據(jù)類(lèi)型(例如數(shù)組或切片)。將其轉(zhuǎn)換為JSON格式后,我們可以將其傳遞給客戶(hù)端,客戶(hù)端可以根據(jù)JSON的格式來(lái)解析該數(shù)據(jù)并做出相應(yīng)的處理。