github.com/zhongdalu/gf@v1.0.0/geg/util/gconv/gconv_struct4.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "github.com/zhongdalu/gf/g" 6 "github.com/zhongdalu/gf/g/util/gconv" 7 ) 8 9 func main() { 10 type Score struct { 11 Name string 12 Result int 13 } 14 type User1 struct { 15 Scores Score 16 } 17 type User2 struct { 18 Scores *Score 19 } 20 21 user1 := new(User1) 22 user2 := new(User2) 23 scores := map[string]interface{}{ 24 "Scores": map[string]interface{}{ 25 "Name": "john", 26 "Result": 100, 27 }, 28 } 29 30 if err := gconv.Struct(scores, user1); err != nil { 31 fmt.Println(err) 32 } else { 33 g.Dump(user1) 34 } 35 if err := gconv.Struct(scores, user2); err != nil { 36 fmt.Println(err) 37 } else { 38 g.Dump(user2) 39 } 40 }