JSON(JavaScript Object Notation )是一種輕量級的數據交換格式。在Go語言中,我們可以使用encoding/json包來解析JSON數據。該包提供了一個Decoder類型,它通過將JSON數據流解析為Go語言中的類型來解碼JSON。
package main import ( "encoding/json" "fmt" "log" ) type Person struct { Name string `json:"name"` Age int `json:"age"` } func main() { jsonStr := `{"name": "Tom", "age": 25}` var p Person err := json.Unmarshal([]byte(jsonStr), &p) if err != nil { log.Fatal(err) } fmt.Println(p.Name, p.Age) }
在上面的示例中,我們首先定義了一個Person類型,該類型具有名字和年齡兩個字段,并使用json標記指定字段的JSON名稱。然后,我們創建一個包含JSON數據的字符串,并使用json.Unmarshal()函數將其解碼成一個Person類型。如果解碼成功,則打印Person的名稱和年齡。
當然,有時我們需要將JSON編碼為字符串。這也可以很容易地完成,只需使用json.Marshal()函數即可:
func main() { p := Person{Name: "Jerry", Age: 30} jsonBytes, err := json.Marshal(p) if err != nil { log.Fatal(err) } fmt.Println(string(jsonBytes)) }
在這個例子中,我們首先創建一個Person類型實例,并通過json.Marshal()函數將其編碼成JSON字符串。如果成功,則打印JSON字符串。
總結來說,encoding/json包使得Go語言中的JSON編解碼變得異常簡單明了。只需按照上面的示例這樣做,就可以快速處理JSON數據。
下一篇vue go 模板