Go語言是一種強類型靜態(tài)編譯型語言,支持并發(fā)編程和垃圾回收機制,越來越受到開發(fā)人員的青睞。在Go語言中,我們可以使用自帶的encoding/json包將結(jié)構(gòu)體或者Map轉(zhuǎn)換為JSON格式。
type Person struct{ Name string `json:"name"` Age int `json:"age"` Gender string `json:"gender,omitempty"` } func main(){ person := Person{ Name: "Tom", Age: 18, } result, err := json.Marshal(person) if err != nil{ fmt.Println("json marshal failed") } fmt.Println(string(result)) }
上述代碼中我們定義了一個Person結(jié)構(gòu)體,并在main函數(shù)中創(chuàng)建了一個Person類型的實例person。然后我們使用json.Marshal()函數(shù)將person轉(zhuǎn)換成JSON格式,存儲在result變量中。最后我們可以使用fmt包中的Println()函數(shù)將result變量打印出來。
運行上述代碼,輸出結(jié)果如下:
{"name":"Tom","age":18}
我們還可以將JSON格式的數(shù)據(jù)解析為Go類型,使用的是json.Unmarshal()函數(shù)。
func main(){ jsonString := `{"name":"Tom","age":18}` var person Person err := json.Unmarshal([]byte(jsonString), &person) if err != nil{ fmt.Println("json unmarshal failed") } fmt.Println(person.Name, person.Age) }
上述代碼中我們定義了一個jsonString變量存儲JSON數(shù)據(jù),再使用json.Unmarshal()函數(shù)將jsonString解析成Person類型的變量person。在Unmarshal()函數(shù)中,我們要傳入兩個參數(shù),一個是byte切片類型的JSON數(shù)據(jù),另一個是指向person變量的指針。最后我們再使用fmt包中的Println()函數(shù)將person的Name屬性和Age屬性打印出來。
運行上述代碼,輸出結(jié)果如下:
Tom 18
上一篇python 情報收集