Go語言提供了非常方便的HTTP和JSON包,使得HTTP請求和JSON解析變得異常簡單。在本文中,我們將介紹如何在Go語言中使用HTTP和JSON。
package main import ( "encoding/json" "fmt" "net/http" ) type User struct { Name string `json:"name"` Age int `json:"age"` } func main() { http.HandleFunc("/user", getUser) err := http.ListenAndServe(":8080", nil) if err != nil { fmt.Println("Error:", err) } } func getUser(w http.ResponseWriter, r *http.Request) { user := User{ Name: "John", Age: 30, } w.Header().Set("Content-Type", "application/json") json.NewEncoder(w).Encode(user) }
以上代碼創(chuàng)建了一個(gè)HTTP服務(wù)器,并在"/user"路徑處定義了一個(gè)處理函數(shù)getUser。該函數(shù)返回一個(gè)JSON格式的用戶信息。
要在Go語言中解析JSON,我們可以使用encoding / json包。該包提供了Encode和Decode函數(shù),以及一個(gè)可以從[] byte中讀取JSON的Decoder類型。
package main import ( "encoding/json" "fmt" ) type User struct { Name string `json:"name"` Age int `json:"age"` } func main() { userJSON := []byte(`{"name": "John", "age": 30}`) var user User err := json.Unmarshal(userJSON, &user) if err != nil { fmt.Println("Error:", err) } fmt.Println(user.Name) fmt.Println(user.Age) }
以上代碼解析了一個(gè)JSON字符串,將其轉(zhuǎn)換為一個(gè)User類型的變量,然后輸出該變量的Name和Age屬性。
總的來說,Go語言為我們提供了非常方便的HTTP和JSON包,使得HTTP請求和JSON解析變得異常簡單。