Go是一種強(qiáng)類型的編程語(yǔ)言,支持使用JSON格式的數(shù)據(jù)交互,其中的json包提供了對(duì)JSON序列化和反序列化的函數(shù)和類型。
使用json包,可以將Go中的結(jié)構(gòu)體、字符串和數(shù)字等數(shù)據(jù)類型序列化為JSON格式,并將JSON格式的數(shù)據(jù)反序列化為Go中的數(shù)據(jù)類型。
以下是一個(gè)示例,演示了使用json包對(duì)Go中的一個(gè)結(jié)構(gòu)體進(jìn)行序列化和反序列化的過(guò)程:
type User struct { Name string `json:"name"` Age int `json:"age"` } user := User{Name: "Alice", Age: 25} // 將User結(jié)構(gòu)體序列化為JSON格式的字符串 jsonString, err := json.Marshal(user) if err != nil { fmt.Println("序列化失敗", err) } fmt.Println(string(jsonString)) // {"name":"Alice","age":25} // 將JSON格式的字符串反序列化為User結(jié)構(gòu)體 var user2 User err = json.Unmarshal(jsonString, &user2) if err != nil { fmt.Println("反序列化失敗", err) } fmt.Println(user2.Name, user2.Age) // Alice 25
在以上示例中,首先定義了一個(gè)結(jié)構(gòu)體User并實(shí)例化了一個(gè)對(duì)象user。然后使用json.Marshal函數(shù)將user對(duì)象序列化為JSON格式的字符串,并使用fmt.Println函數(shù)輸出序列化結(jié)果。
接著使用json.Unmarshal函數(shù)將序列化后的字符串反序列化為User結(jié)構(gòu)體,并將反序列化后得到的數(shù)據(jù)存儲(chǔ)到變量user2中。最后使用fmt.Println函數(shù)輸出user2的Name和Age屬性,驗(yàn)證反序列化的結(jié)果。