使用Go語(yǔ)言請(qǐng)求第三方接口并解析JSON是一種常見(jiàn)的操作。在這個(gè)過(guò)程中,我們首先需要使用Go語(yǔ)言的HTTP庫(kù)建立一個(gè)HTTP請(qǐng)求,然后通過(guò)該請(qǐng)求向目標(biāo)URL發(fā)送請(qǐng)求。隨后,我們需要使用Go語(yǔ)言的JSON解析庫(kù)解析從API中獲取到的JSON數(shù)據(jù)。
下面是一個(gè)使用Go語(yǔ)言請(qǐng)求第三方接口并解析JSON的簡(jiǎn)單示例:
package main import ( "fmt" "net/http" "io/ioutil" "encoding/json" ) func main() { // 向指定URL發(fā)送GET請(qǐng)求 resp, err := http.Get("https://api.example.com/users") if err != nil { fmt.Println("請(qǐng)求失敗:", err) } defer resp.Body.Close() // 讀取HTTP響應(yīng)體的JSON數(shù)據(jù) body, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println("讀取響應(yīng)失敗:", err) } // 解析JSON數(shù)據(jù) var data []map[string]interface{} err = json.Unmarshal(body, &data) if err != nil { fmt.Println("解析JSON失敗:", err) } // 處理解析后的數(shù)據(jù) for _, item := range data { fmt.Println(item["name"]) } }
在上述代碼中,我們首先使用HTTP庫(kù)的Get方法向指定URL發(fā)送請(qǐng)求,然后通過(guò)ioutil庫(kù)的ReadAll函數(shù)讀取響應(yīng)體。隨后,我們使用json庫(kù)解析得到的JSON數(shù)據(jù),并將其解析為一個(gè)字符串字典的數(shù)組。
最后,我們可以對(duì)解析后的數(shù)據(jù)進(jìn)行任意操作。例如,我們可以使用for循環(huán)遍歷數(shù)組,并輸出其中的“name”屬性。