我的問題是我希望能夠遍歷每個服務器并在該循環中遍歷 UsageData我當前的循環給了我一個關于遍歷資產的錯誤,不知道為什么我無法訪問 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) //} }}** 正確答案的代碼,我錯誤地調用了嵌套結構**https://go.dev/play/p/tEbA405WWbC
在 golang 中循環結構和訪問數組
慕尼黑8549860
2022-11-23 15:45:31