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

go函數的結構體和json

劉柏宏2年前8瀏覽0評論

Go語言中的結構體是一種非常重要的數據類型,它可以描述一個實體的屬性和方法,可以作為一種數據結構進行使用。結構體的定義除了可以包含基本的數據類型和指針以外,還可以包含嵌套的結構體類型。下面是一個簡單的結構體定義:

type Person struct {
Name    string
Age     int
Address Address
}
type Address struct {
City     string
Province string
}

在使用結構體時,我們經常需要將它轉換成JSON格式的數據進行傳輸或者存儲。Go語言內置的json包提供了非常方便的JSON序列化和反序列化功能。

將一個結構體轉換成JSON字符串非常簡單,只需要使用json.Marshal函數即可:

person := Person{
Name: "張三",
Age:  18,
Address: Address{
City:     "北京",
Province: "北京市",
},
}
data, err := json.Marshal(person)
if err != nil {
fmt.Println("Failed to marshal person:", err)
}
fmt.Println(string(data))

上面的代碼中,我們首先創建了一個Person類型的變量,然后使用json.Marshal函數將其轉換成JSON格式的數據,最后將JSON字符串輸出到控制臺。輸出結果如下:

{"Name":"張三","Age":18,"Address":{"City":"北京","Province":"北京市"}}

同樣地,將一個JSON字符串轉換成結構體也非常簡單。我們只需要使用json.Unmarshal函數即可:

jsonStr := `{"Name":"張三","Age":18,"Address":{"City":"北京","Province":"北京市"}}`
var person Person
err := json.Unmarshal([]byte(jsonStr), &person)
if err != nil {
fmt.Println("Failed unmarshal person:", err)
}
fmt.Println(person)

上面的代碼中,我們首先定義了一個JSON字符串,然后使用json.Unmarshal函數將其轉換成Person類型的數據,最后將Person類型的變量輸出到控制臺。輸出結果如下:

{張三 18 {北京 北京市}}