在Go語言中,解析HTTP JSON是一種非常常見的操作。下面我們來看一下具體的實現(xiàn)方法。
首先,我們需要用Go語言自帶的"net/http"庫來發(fā)送HTTP請求,并獲取請求結(jié)果:
resp, err := http.Get("http://example.com/") defer resp.Body.Close() if err != nil { // 處理錯誤 } body, err := ioutil.ReadAll(resp.Body) if err != nil { // 處理錯誤 }
上面的代碼中,我們首先發(fā)送了一個HTTP GET請求,并通過"ioutil"庫將請求結(jié)果讀取到了"body"變量中。
接下來,我們使用Go語言內(nèi)置的"json"庫對這個JSON數(shù)據(jù)進行解析:
var data map[string]interface{} err = json.Unmarshal([]byte(body), &data) if err != nil { // 處理錯誤 } fmt.Println(data)
上面的代碼中,我們使用"json.Unmarshal"方法將"body"變量中的JSON數(shù)據(jù)轉(zhuǎn)化為一個map類型的變量"data"。其中,"&data"表示對"data"變量的地址進行操作,以便在"json.Unmarshal"方法中將解析結(jié)果存儲到"data"變量中。
最后,我們可以根據(jù)需要來獲取"map"變量中的各個屬性值:
fmt.Println(data["name"].(string))
"data['name']"表示獲取JSON數(shù)據(jù)中"name"屬性的值,"(string)"表示將結(jié)果強制轉(zhuǎn)化為字符串類型。如果"name"屬性對應(yīng)的值不是字符串類型,該代碼將會拋出運行時錯誤。
通過上面的方法,我們可以在Go語言中非常方便地解析HTTP JSON。