在Go語言中,使用post方法向服務(wù)器發(fā)送json數(shù)據(jù)是非常常見的操作。如果需要發(fā)送的數(shù)據(jù)是一個數(shù)組,那么可以按照以下的方式來實(shí)現(xiàn)。
package main import ( "bytes" "encoding/json" "net/http" ) func main() { var arr []int = []int{1, 2, 3, 4, 5} // 將數(shù)組轉(zhuǎn)化為json字符串 jsonData, _ := json.Marshal(arr) req, err := http.NewRequest("POST", "http://example.com", bytes.NewBuffer(jsonData)) if err != nil { // 處理錯誤 return } // 設(shè)置請求header req.Header.Set("Content-Type", "application/json") // 創(chuàng)建http客戶端并發(fā)送請求 client := &http.Client{} resp, err := client.Do(req) if err != nil { // 處理錯誤 return } defer resp.Body.Close() // 處理響應(yīng) // ... }
上面的代碼首先定義了一個數(shù)組int {1, 2, 3, 4, 5},然后使用json.Marshal()方法將其轉(zhuǎn)化為json字符串,將字符串放到http請求的body中,并將請求頭的content-type設(shè)置為application/json,最后通過http客戶端發(fā)送post請求。
如果需要發(fā)送的數(shù)組元素類型不是int,比如是一個自定義的結(jié)構(gòu)體,只需要將struct定義好,并使用json.Marshal()將其轉(zhuǎn)化為json字符串即可。