函数的入参统一做jsonMarshal或jsonUnmarshal处理,通过反射?

cshwen · · 2073 次点击
大概这样 ``` func reflectMethod(fn interface{}, args ...interface{}){ fnVal := reflect.ValueOf(fn) fnType := fnVal.Type() if len(args) != fnType.NumIn() { panic("") } argsVal := []reflect.Value{} for _, arg := range args { data, _ := json.Marshal(arg) argsVal = append(argsVal, reflect.ValueOf(data)) } fnVal.Call(argsVal) } func fnA(d1 []byte){ } func main() { reflectMethod(fnA, "abc") } ```
#4
更多评论
import ( "fmt" "encoding/json" ) 使用这个包可以,目前未找到这种demo。 err := json.Unmarshal([]byte(codString), &cod) 使用官方提供的包,不香吗
#1
用aop可以做这个事情, 搜索go aop
#2