github.com/zhongdalu/gf@v1.0.0/geg/util/gconv/gconv_struct1.go (about)

     1  package main
     2  
     3  import (
     4  	"github.com/zhongdalu/gf/g"
     5  	"github.com/zhongdalu/gf/g/util/gconv"
     6  )
     7  
     8  type User struct {
     9  	Uid      int
    10  	Name     string
    11  	Site_Url string
    12  	NickName string
    13  	Pass1    string `gconv:"password1"`
    14  	Pass2    string `gconv:"password2"`
    15  }
    16  
    17  func main() {
    18  	user := (*User)(nil)
    19  
    20  	// 使用默认映射规则绑定属性值到对象
    21  	user = new(User)
    22  	params1 := g.Map{
    23  		"uid":       1,
    24  		"Name":      "john",
    25  		"siteurl":   "https://goframe.org",
    26  		"nick_name": "johng",
    27  		"PASS1":     "123",
    28  		"PASS2":     "456",
    29  	}
    30  	if err := gconv.Struct(params1, user); err == nil {
    31  		g.Dump(user)
    32  	}
    33  
    34  	// 使用struct tag映射绑定属性值到对象
    35  	user = new(User)
    36  	params2 := g.Map{
    37  		"uid":       2,
    38  		"name":      "smith",
    39  		"site-url":  "https://goframe.org",
    40  		"nick name": "johng",
    41  		"password1": "111",
    42  		"password2": "222",
    43  	}
    44  	if err := gconv.Struct(params2, user); err == nil {
    45  		g.Dump(user)
    46  	}
    47  }