
new := v.Elem().Interface()
该
new推断有
interface{}型。然后,当您将地址解组时,类型
&new为
*interface{}(指向interface {}的指针),并且解组无法按预期工作。如果可以
Elem()直接使用指针引用而不是直接使用类型断言,则可以避免类型断言。
func main() { //Original struct orig := new(Employee) t := reflect.TypeOf(orig) v := reflect.New(t.Elem()) // reflected pointer newP := v.Interface() // Unmarshal to reflected struct pointer json.Unmarshal([]byte("{"firstname": "bender"}"), newP) fmt.Printf("%+vn", newP)}游乐场:https :
//play.golang.org/p/lTBU-1PqM4
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)