package main import ( "fmt" "github.com/gogf/gf/frame/g" "github.com/gogf/gf/util/gconv" ) func main() { type Score struct { Name string Result int } type User struct { Scores []*Score } user := new(User) scores := g.Map{ "Scores": g.Slice{ g.Map{ "Name": "john", "Result": 100, }, g.Map{ "Name": "smith", "Result": 60, }, }, } // 嵌套struct转换,属性为slice类型,数值为slice map类型 if err := gconv.Struct(scores, user); err != nil { fmt.Println(err) } else { g.Dump(user) } }