Go語(yǔ)言中使用接口接收J(rèn)SON非常常見,接下來(lái)我們來(lái)看一下如何實(shí)現(xiàn)。首先,我們需要定義一個(gè)結(jié)構(gòu)體類型來(lái)表示JSON數(shù)據(jù)。這個(gè)結(jié)構(gòu)體類型應(yīng)該與我們的JSON數(shù)據(jù)格式相對(duì)應(yīng),例如:
type User struct { Name string `json:"name"` Age int `json:"age"` }
在這個(gè)例子中,我們定義了一個(gè)名為User的結(jié)構(gòu)體類型,它包含了兩個(gè)成員變量:Name和Age。通過在結(jié)構(gòu)體成員上使用標(biāo)簽,我們可以指定JSON數(shù)據(jù)中各個(gè)字段的名稱。
接下來(lái),我們需要解析JSON數(shù)據(jù)并將其填充到我們剛剛定義的結(jié)構(gòu)體中。在Go語(yǔ)言中,可以使用encoding/json包來(lái)完成這個(gè)任務(wù)。
func main() { jsonString := `{"name": "John Doe", "age": 30}` user := User{} err := json.Unmarshal([]byte(jsonString), &user) if err != nil { log.Fatal(err) } fmt.Println(user.Name) fmt.Println(user.Age) }
在這個(gè)例子中,我們首先定義了一個(gè)包含JSON數(shù)據(jù)的字符串變量。然后,我們定義了一個(gè)User類型的變量user,并使用json.Unmarshal函數(shù)將JSON數(shù)據(jù)解析到user變量中。在這個(gè)例子中,我們使用了&符號(hào)來(lái)取user變量的地址,并將其傳遞給json.Unmarshal函數(shù)。這樣,json.Unmarshal函數(shù)就可以將JSON數(shù)據(jù)解析到user變量中了。
解析完成之后,我們可以通過訪問user變量的成員來(lái)獲取JSON數(shù)據(jù)。在這個(gè)例子中,我們?cè)L問了user的Name和Age成員,并將它們打印到了控制臺(tái)上。