gitee.com/zhongguo168a/gocodes@v0.0.0-20230609140523-e1828349603f/datax/jsonmap/any-to-any.go (about) 1 package jsonmap 2 3 import ( 4 "errors" 5 "reflect" 6 ) 7 8 func AnyToAny(from interface{}, to interface{}) (err error) { 9 fromref := reflect.ValueOf(from) 10 toref := reflect.ValueOf(to) 11 switch fromref.Kind() { 12 case reflect.Map: 13 switch toref.Kind() { 14 case reflect.Map: 15 MapToJsonMap(from.(map[string]interface{}), to.(map[string]interface{})) 16 case reflect.Struct: 17 err = MapToStruct(from.(map[string]interface{}), toref.Addr()) 18 case reflect.Ptr: 19 err = MapToStruct(from.(map[string]interface{}), to) 20 } 21 case reflect.Struct: 22 switch toref.Kind() { 23 case reflect.Map: 24 err = StructToMap(from.(map[string]interface{}), to.(map[string]interface{})) 25 case reflect.Struct: 26 err = errors.New("not support") 27 } 28 } 29 30 return 31 }