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

go語言 提取json

老白2年前8瀏覽0評論

最近我開始學習Go語言,感覺這是一門非常適合做后端開發(fā)的語言。今天我想和大家分享一下如何在Go語言中提取JSON數(shù)據(jù)。

Go語言內(nèi)置了一個json包,可以方便地解析JSON數(shù)據(jù)。首先,我們需要定義一個結構體來存儲JSON數(shù)據(jù):

type Person struct {
Name   string `json:"name"`
Age    int    `json:"age"`
Gender string `json:"gender"`
}

上面的代碼定義了一個名為Person的結構體,包含了三個字段:Name、Age和Gender。通過在字段后面加上json標簽,可以指定對應的JSON字段名。

接下來,我們可以使用json.Unmarshal函數(shù)將JSON數(shù)據(jù)解析到結構體中:

jsonStr := `{"name": "張三", "age": 18, "gender": "男"}`
var person Person
err := json.Unmarshal([]byte(jsonStr), &person)
if err != nil {
fmt.Println("解析JSON數(shù)據(jù)失敗:", err)
return
}
fmt.Printf("姓名:%s,年齡:%d,性別:%s", person.Name, person.Age, person.Gender)

上面的代碼中,我們先定義了一個JSON字符串,然后聲明了一個Person類型的變量person,并將json.Unmarshal的第二個參數(shù)傳入這個變量的地址。如果解析JSON數(shù)據(jù)成功,就可以直接通過結構體變量訪問對應的字段。

除了使用結構體解析JSON數(shù)據(jù),還可以使用map[string]interface{}類型來存儲JSON數(shù)據(jù):

jsonStr := `{"name": "李四", "age": 20, "gender": "女"}`
var personMap map[string]interface{}
err := json.Unmarshal([]byte(jsonStr), &personMap)
if err != nil {
fmt.Println("解析JSON數(shù)據(jù)失敗:", err)
return
}
fmt.Printf("姓名:%v,年齡:%v,性別:%v", personMap["name"], personMap["age"], personMap["gender"])

上面的代碼中,我們使用了map[string]interface{}類型來存儲JSON數(shù)據(jù),其中map的鍵是JSON字段名,值是對應的字段值。同樣地,我們也可以使用json.Unmarshal函數(shù)將JSON數(shù)據(jù)解析到map中,并直接訪問對應的鍵值。

總的來說,Go語言提取JSON數(shù)據(jù)非常方便,只需要使用內(nèi)置的json包就能快速地解析JSON數(shù)據(jù)。