请教各位经验er一个基础问题,也不确定是否可行
假设原来多个函数,如下图,函数 A、B、C 等,里面第一部分逻辑都需要对入参做jsonMarshal或jsonUnmarshal或其他操作,我就想着是否可以通过反射或其他方法统一处理掉,在函数外面嵌套一层去做处理。
![image.png](https://static.golangjob.cn/220711/5c2e5caeaf5e4fb702c79c4e58a16fec.png)
如何才能统一处理呢,麻烦有经验的大大指点下查询哪方面知识我去试下,或解决方案链接,或demo
![image.png](https://static.golangjob.cn/220711/700b0b57987c8f347c4eb382ec2c2773.png)
感激不尽。
大概这样
```
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