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

golang json怎么嵌套

錢艷冰2年前8瀏覽0評論

Golang是一種常用的編程語言,它提供了一些很好用的包,其中包括了json包。通過使用json包,我們可以輕松地將數據結構轉化為json格式,也可以將json格式轉化為相應的數據結構。

//定義一個結構體
type Person struct {
Name   string
Age    int
Family Family
}
//定義Family結構體
type Family struct {
Father string
Mother string
}

以上代碼定義了一個Person結構體,包含了Name、Age和Family等三個字段。Family是另外一個結構體,Father和Mother是這個結構體的兩個字段。下面我們來嵌套Family。

//定義嵌套結構體
type Person struct {
Name   string
Age    int
Family struct {
Father string
Mother string
}
}

以上代碼將Family嵌套到了Person結構體里面,而不再通過定義另外一個結構體來定義Family。

//編碼
func main() {
p := Person{Name:"Tom", Age:20, Family:Family{Father:"John", Mother:"Lucy"}}
data, err := json.Marshal(p)
if err != nil {
fmt.Println("json err:", err)
}
fmt.Println(string(data))
}

通過調用json.Marshal()函數,可以將Person結構體轉化為json格式。我們在定義Person結構體的時候,使用了嵌套結構體的方式來定義Family,因此在調用json.Marshal()函數的時候,也需要嵌套地獲取Family字段。

//解碼
func main() {
jsonStr := `{"Name":"Tom","Age":20,"Family":{"Father":"John","Mother":"Lucy"}}`
var p Person
err := json.Unmarshal([]byte(jsonStr), &p)
if err != nil {
fmt.Println("json err:", err)
}
fmt.Println(p.Name, p.Age, p.Family.Father, p.Family.Mother)
}

通過調用json.Unmarshal()函數,可以將json格式的數據轉化為Person結構體。同樣地,在獲取Family的時候,需要嵌套地獲取。

以上就是關于Golang json嵌套的介紹。