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