欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

go中結構體轉json

方一強2年前8瀏覽0評論

Go語言中的結構體是一種非常方便的數據類型,通過結構體可以將不同的數據類型組合在一起,形成一個新的數據類型。而JSON是一種非常常用的數據交換格式,可以將復雜的數據結構簡單地表示為一個字符串。在Go中,可以非常方便地將結構體轉換為JSON字符串,以便于數據交換和存儲。

要將Go中的結構體轉換為JSON字符串,需要使用內置的`encoding/json`包,其中包括了將JSON字符串轉換為結構體和將結構體轉換為JSON字符串的函數。

type Person struct {
Name string `json:"name"`
Age int `json:"age"`
Email string `json:"email,omitempty"`
}
func main() {
p1 := Person{"Tom", 18, ""}
p2 := Person{"Jerry", 20, "jerry@example.com"}
jsonString1, _ := json.Marshal(p1)
jsonString2, _ := json.Marshal(p2)
fmt.Println(string(jsonString1))
fmt.Println(string(jsonString2))
var p3 Person
json.Unmarshal(jsonString2, &p3)
fmt.Println(p3)
}

上述代碼中定義了一個Person結構體,其中包括Name、Age和Email三個字段,Email使用了omitempty標記,表示當Email字段為空值時不序列化該字段到JSON字符串中。

在main函數中,創建了兩個Person類型的變量p1和p2。通過json.Marshal函數將p1和p2序列化為JSON字符串,其中使用string()函數將byte類型的JSON字符串轉換為string類型,以便于輸出。

同時,代碼中也演示了通過json.Unmarshal函數將JSON字符串反序列化成結構體的過程。在第一次使用json.Marshal序列化p1和p2時,并沒有反序列化操作,因此將結果輸出到終端即可。第二次使用json.Unmarshal函數將jsonString2反序列化為p3,輸出p3的值。