Go語(yǔ)言是一門強(qiáng)類型語(yǔ)言,在處理不同類型的數(shù)據(jù)時(shí)需要進(jìn)行類型轉(zhuǎn)換。其中就包括字符串轉(zhuǎn)換為JSON格式,這在我們進(jìn)行Web開發(fā)中常常會(huì)用到。
import ( "encoding/json" "fmt" ) type Person struct { Name string `json:"name"` Age int `json:"age"` } func main() { p := Person{ Name: "John", Age: 30, } // 將struct轉(zhuǎn)換成json格式的字符串 str, err := json.Marshal(p) if err != nil { fmt.Println(err) return } fmt.Println(string(str)) }
上面的代碼演示了如何將一個(gè)Person類型的結(jié)構(gòu)體轉(zhuǎn)換成JSON格式的字符串,并輸出到控制臺(tái)。
與此相反,我們也可以將一個(gè)JSON格式的字符串轉(zhuǎn)換成一個(gè)結(jié)構(gòu)體。如下所示:
func main() { jsonStr := `{"name":"John","age":30}` var p Person // 將json格式的字符串轉(zhuǎn)換成struct err := json.Unmarshal([]byte(jsonStr), &p) if err != nil { fmt.Println(err) return } fmt.Println(p.Name, p.Age) }
以上代碼將一個(gè)JSON格式的字符串"{"name":"John","age":30}" 轉(zhuǎn)換成了一個(gè)Person類型的結(jié)構(gòu)體,然后輸出了結(jié)構(gòu)體的字段Name和Age。
在實(shí)際開發(fā)中,我們經(jīng)常會(huì)遇到需要將JSON格式的數(shù)據(jù)轉(zhuǎn)換為其他類型的數(shù)據(jù)。因此,在學(xué)習(xí)Go語(yǔ)言時(shí),掌握如何進(jìn)行字符轉(zhuǎn)JSON的技能非常重要。