github.com/gogf/gf@v1.16.9/.example/util/gconv/gconv_struct6.go (about) 1 package main 2 3 import ( 4 "fmt" 5 6 "github.com/gogf/gf/frame/g" 7 "github.com/gogf/gf/util/gconv" 8 ) 9 10 func main() { 11 type Score struct { 12 Name string 13 Result int 14 } 15 type User struct { 16 Scores []*Score 17 } 18 19 user := new(User) 20 scores := g.Map{ 21 "Scores": g.Slice{ 22 g.Map{ 23 "Name": "john", 24 "Result": 100, 25 }, 26 g.Map{ 27 "Name": "smith", 28 "Result": 60, 29 }, 30 }, 31 } 32 33 // 嵌套struct转换,属性为slice类型,数值为slice map类型 34 if err := gconv.Struct(scores, user); err != nil { 35 fmt.Println(err) 36 } else { 37 g.Dump(user) 38 } 39 }