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

go json 多維

老白2年前9瀏覽0評論

Go語言中Json多維表示的格式非常靈活,可以支持嵌套的結構體、切片、接口等多種數據類型。在代碼中使用json包可以方便地對Json數據進行序列化和反序列化操作。

type Book struct {
Title  string
Author string
Price  float64
}
type Library struct {
Name  string
Books []Book
}
func main() {
b1 := Book{"Go in Action", "William Kennedy", 39.99}
b2 := Book{"The Go Programming Language", "Alan A. A. Donovan", 38.99}
l := Library{"my library", []Book{b1, b2}}
data, err := json.Marshal(l)
if err != nil {
fmt.Printf("error: %v\n", err)
return
}
fmt.Printf("%s\n", data)
var l2 Library
err = json.Unmarshal(data, &l2)
if err != nil {
fmt.Printf("error: %v\n", err)
return
}
fmt.Printf("%v\n", l2)
}

在上面的例子中,我們定義了兩個數據類型Book和Library,其中Library內嵌了一個Book切片。我們將Library實例序列化成Json數據,并將其打印出來。然后我們將這個Json數據反序列化回Library實例,并將其打印出來。

當然,Json多維表示的格式不僅限于結構體和切片,還可以支持接口類型。我們可以通過在結構體定義的字段上加上json標簽來指定對應的Json名字。

type Person struct {
Name string `json:"name"`
Age  int    `json:"age"`
}
type Book struct {
Title  string `json:"title"`
Author Person `json:"author"`
}

在上面的例子中,Book結構體的Author字段是一個Person類型。我們通過在Person結構體的Name和Age字段上加上json標簽來指定對應的Json名字。這樣,在將Book實例序列化成Json數據時,Author字段也會按照Name和Age字段指定的Json名字來進行序列化。

總之,Go語言中Json多維表示的格式非常靈活,可以支持多種數據類型。使用json包可以方便地對Json數據進行序列化和反序列化操作。