例子
泛型在Go1.18版本后才能使用
package main
import (
"encoding/json"
"fmt"
"log"
)
func JsonStrToModel[T interface{}](dataStr string) (T, error) {
t := new(T)
err := json.Unmarshal([]byte(dataStr), t)
if err != nil {
fmt.Printf("Json串转化为Map失败,异常:%s\n", err)
return *t, err
}
return *t, err
}
type Student1 struct {
Name string
Age int
Skills []string
}
func main() {
jsonStr := "{"name":"小名","age":12}"
model, err := JsonStrToModel[Student1](jsonStr)
if err != nil {
log.Println(err.Error())
}
log.Println(model.Name)
}
打印
2022/04/25 16:20:06 小名