func deserialize(request *http.Request,typ reflect.Type) (interface{}, *httpNet.HandlerError){


    data,e:=ioutil.ReadAll(request.Body)

    fmt.Println(string(data))

    if e !=nil{

        return nil,&httpNet.HandlerError{e,"could not read request",http.StatusBadRequest}

    }


    v:=typ.Elem()

    payload:=reflect.New(v).Elem().Interface()


    eaa:= json.NewDecoder(request.Body).Decode(payload)


    if e!=nil{

        fmt.Println(eaa.Error())

    }

    fmt.Println(payload)

    fmt.Println(reflect.ValueOf(payload)

        )

    return payload,nil


}

调用它:


r,_:= deserialize(request,reflect.TypeOf(&testData{}))

它不会抛出错误并且在我看来是完全有效的操作,但结果是期望类型的空结构。


有什么问题吗?