色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

golang json 子對象

老白1年前8瀏覽0評論

golang 是一種靜態類型的編程語言,它的 json 包為我們提供了很好的 json 序列化和反序列化的能力,而且對于復雜的 json 對象,我們還可以使用子對象進行更加靈活的操作。

type Person struct {
	Name    string
	Age     int
	Address Address
}
type Address struct {
	Country string
	City    string
}
func main() {
	p := Person{
Name: "John",
Age: 30,
Address: Address{
Country: "USA",
City: "San Francisco",
},
	}
	b, _ := json.Marshal(p)
	fmt.Println(string(b))
}

在上面的例子中,我們定義了一個 Person 結構體,并且包含了 Address 子結構體。我們對 Person 結構體進行 json 序列化,并輸出字符串。輸出的結果如下:

{
"Name": "John",
"Age": 30,
"Address": {
"Country": "USA",
"City": "San Francisco"
}
}

我們可以看到,當一個結構體中包含了子結構體,序列化后的 json 字符串中會將子結構體看作一個子對象進行輸出。

如果我們要對 json 字符串進行反序列化操作,也可以使用子結構體進行更加靈活的處理:

func main() {
	str := `{
"Name": "John",
"Age": 30,
"Address": {
"Country": "USA",
"City": "San Francisco"
}
}`
var p Person
json.Unmarshal([]byte(str), &p)
fmt.Println(p.Name, p.Age, p.Address.Country, p.Address.City)
}

在上面的例子中,我們將一個 json 字符串反序列化為 Person 結構體,然后通過訪問 Person 結構體中的子結構體 Address 的成員,可以實現對復雜 json 對象的便捷訪問。

總之,在 golang 中,json 子對象提供了非常方便的 json 序列化和反序列化操作,讓我們能夠更加靈活地操作復雜的 json 對象。