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  }