Go語言是一種有著快速編譯速度和高效執行效率的編程語言。它的編寫風格簡潔、靈活,適合構建高性能的網絡服務和分布式系統。在Go語言中,對于JSON格式的序列化和反序列化,可以使用標準庫中的“encoding/json”包。
package main import ( "encoding/json" "fmt" ) type User struct { Name string `json:"username"` Age int `json:"age"` Email string `json:"email,omitempty"` Phone string `json:"phone,omitempty"` } func main() { u := User{ Name: "tom", Age: 20, } b, err := json.Marshal(u) if err != nil { fmt.Println("json marshal error:", err) } fmt.Println(string(b)) }
上述代碼通過定義了一個名為“User”的結構體來表示用戶的信息,其中通過添加“json”標簽來定義了JSON的名稱和是否忽略空值。在主函數中,我們定義了一個User類型的實例并使用json.Marshal()方法將其轉換為JSON格式的字符串,最后將轉換后的字符串打印出來。
如果我們想要將JSON字符串反序列化為某個結構體實例,可以使用json.Unmarshal()方法進行反序列化:
func main() { u := User{} jsonStr := `{"username":"tom","age":20,"phone":"12345678910"}` err := json.Unmarshal([]byte(jsonStr), &u) if err != nil { fmt.Println("json unmarshal error:", err) } fmt.Println(u) }
在上述代碼中,我們定義了一個空的User類型結構體,并使用json.Unmarshal()方法將JSON字符串進行反序列化,最后將反序列化后的結果打印出來。