我的問(wèn)題是我希望能夠遍歷每個(gè)服務(wù)器并在該循環(huán)中遍歷 UsageData我當(dāng)前的循環(huán)給了我一個(gè)關(guān)于遍歷資產(chǎn)的錯(cuò)誤,不知道為什么我無(wú)法訪問(wèn) assets.Server.UsageData這是我的代碼:https ://go.dev/play/p/ttNVW5_Q4Yspackage mainimport ( "encoding/json" "fmt")type Asset struct { Server struct { Host string `json:"host"` Port string `json:"port"` } `json:"server"` Postgres struct { Host string `json:"host"` User string `json:"user"` Password string `json:"password"` DB string `json:"db"` UsageData []struct { Region string `json:"Region"` Mbps int `json:"Mpbs"` } `json:"UsageData"` } `json:"database"`}func main() { jsonConfig := []byte(`[ { "server":{ "host":"serverA", "port":"8080"}, "database":{ "host":"serverA", "user":"db_user", "password":"supersecret", "db":"A_db", "UsageData":[{"Region":"US","Mbps":100}, {"Region":"EU","Mbps":140}] } }, { "server":{ "host":"serverB", "port":"8383"}, "database":{ "host":"serverB", "user":"db_user2", "password":"acbd123", "db":"B_db", "UsageData":[{"Region":"US","Mbps":58}, {"Region":"EU","Mbps":250}] } }]`) var assets []Asset err := json.Unmarshal(jsonConfig, &assets) if err != nil { panic(err) } fmt.Printf("Assets: %+v\n", assets) //fmt.Printf("Config: %+v\n", assets.Server.Host) //fmt.Printf("Config: %+v\n", assets.database.UsageData) //fmt.Printf("Config: %+v\n", assets.Server.UsageData) for _, asset := range assets { fmt.Printf("%v\n", asset) //for _, Usage := range assets.UsageData { // fmt.Printf("%v\n",Usage) //} }}** 正確答案的代碼,我錯(cuò)誤地調(diào)用了嵌套結(jié)構(gòu)**https://go.dev/play/p/tEbA405WWbC
在 golang 中循環(huán)結(jié)構(gòu)和訪問(wèn)數(shù)組
慕尼黑8549860
2022-11-23 15:45:31