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

go語言結構體json

錢衛國1年前8瀏覽0評論

Go語言的結構體非常常用,經常用于實現各種數據結構、模型等。而在與外部系統交互的過程中,我們也經常需要將這些結構體轉換成json格式。本文將介紹如何使用Go語言實現結構體到json的轉換。

在Go語言中,我們可以使用內置的encoding/json包來實現結構體到json的轉換。其核心功能由Marshal和Unmarshal函數完成。其中Marshal函數將Go語言中的結構體轉化為json格式,而Unmarshal函數則將json格式的數據轉換為對應的Go語言結構體。

package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string `json:"name"`
Age  int    `json:"age"`
}
func main() {
person := Person{"小紅", 20}
jsonBytes, err := json.Marshal(person)
if err != nil {
fmt.Println("json.Marshal failed:", err)
return
}
fmt.Println(string(jsonBytes))
}

上述代碼中,我們定義了一個Person結構體,其中包含了名字和年齡兩個屬性。然后我們將其使用json.Marshal函數轉換為json格式的字符串。最后將其打印出來,即得到以下輸出:

{"name":"小紅","age":20}

在使用json.Marshal函數時,我們可以在結構體的屬性后面添加一個`json:"屬性名"`的標簽,來指定json中對應的屬性名。例如在上面的代碼中,Name屬性對應的json屬性名為name,Age屬性對應的json屬性名為age。

如果我們需要將json數據轉換為Go語言的結構體,可以使用json.Unmarshal函數來實現:

package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string `json:"name"`
Age  int    `json:"age"`
}
func main() {
jsonStr := `{"name":"小明","age":25}`
var person Person
err := json.Unmarshal([]byte(jsonStr), &person)
if err != nil {
fmt.Println("json.Unmarshal failed:", err)
return
}
fmt.Println(person.Name, person.Age)
}

上述代碼中,我們首先定義了一個json字符串,然后使用json.Unmarshal函數將其解析為Person結構體。在使用Unmarshal函數時,我們需要提供一個指向要解析的json數據的字節數組和一個指向要解析成的結構體的指針。在解析完成后,我們可以通過訪問解析后的結構體的屬性來獲取轉換后的數據。

總的來說,Go語言中結構體到json的轉換非常方便,只需要掌握好encoding/json包的使用方法即可。