123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- package main
- import (
- "fmt"
- "git.sxidc.com/go-framework/baize/framework/core/tag/assign"
- "reflect"
- "time"
- )
- type JsonBodyID struct {
- ID string `assign:"toField:Id"`
- }
- type UpdateClassJsonBody struct {
- JsonBodyID
- Name string `assign:"toField:Name"`
- CreatedTime *time.Time
- UpdatedTime *time.Time
- }
- type DomainID struct {
- Id string
- }
- type ClassDomain struct {
- *DomainID
- Name string
- CreatedTime *time.Time
- }
- func main() {
- class := new(ClassDomain)
- err := assign.UseTag(&UpdateClassJsonBody{}, class,
- func(fromFieldName string, fromFieldElemValue reflect.Value, retFieldElementValue reflect.Value, assignTag *assign.Tag) error {
- fmt.Println("Field Name:", fromFieldName)
- fmt.Println("Type:", fromFieldElemValue.Type().String())
- if fromFieldElemValue.Kind() == reflect.String {
- fmt.Printf("\"%+v\"\n", fromFieldElemValue.Interface())
- } else {
- fmt.Printf("%+v\n", fromFieldElemValue.Interface())
- }
- fmt.Printf("%+v\n", assignTag)
- fmt.Println()
- return nil
- })
- if err != nil {
- panic(err)
- }
- }
|