Go語言是一個非常流行的編程語言,它提供了許多方便的工具和庫。其中,json包是非常常用的一個庫,它允許我們將JSON數據解析到Go結構體中,或將Go結構體編碼成JSON數據。
type Person struct { Name string `json:"name"` Age int `json:"age"` } func main() { data := []byte(`{"name": "Tom", "age": 30}`) var p Person err := json.Unmarshal(data, &p) if err != nil { fmt.Println("error:", err) return } fmt.Println(p.Name, p.Age) }
在上面的例子中,我們定義了一個Person結構體,并使用json包中的Unmarshal函數將一個JSON字符串解析到該結構體中。Unmarshal函數的第一個參數是JSON數據,第二個參數是目標結構體的指針。
如果解析成功,我們就能夠通過訪問結構體中的字段來獲取JSON數據的值。在這個例子中,我們打印了Tom和30。
除了解析JSON數據外,json包還提供了Marshal函數,可以將Go結構體編碼成JSON字符串。以下是一個例子:
func main() { p := Person{Name: "Jack", Age: 25} data, err := json.Marshal(p) if err != nil { fmt.Println("error:", err) return } fmt.Println(string(data)) }
在這個例子中,我們定義了一個Person結構體,并使用json包中的Marshal函數將該結構體編碼成JSON字符串。注意,我們使用了string(data)將[]byte類型轉換為了string類型。
總之,使用Go語言的json包可以方便地處理JSON數據,從而讓我們的應用變得更加強大和靈活。