为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用作为接口参数传入的 Struct 来操作解码的 XML

如何使用作为接口参数传入的 Struct 来操作解码的 XML

Go
慕沐林林 2021-08-23 16:55:37
有没有办法使用作为接口参数传入的结构来操作解码的 XML?我将结构作为具有接口类型的参数传递,但在用它解码后,xml.Decode我无法指定其字段以将其字段检索为结构。我认为 go 抱怨它不知道要查找哪个结构,除非特别提及。下面是一个示例函数:func UpdateEntity(response *restful.Response, xml_template string, dataStruct interface{}, respStruct interface{}) (*restful.Response, interface{}) {    payload := renderCachedTemplate(response, xml_template, dataStruct)    resp, err := http.Post(url, "application/xml", payload)    if err != nil {        response.WriteErrorString(http.StatusInternalServerError, err.Error())        return nil, nil    }    defer resp.Body.Close()    dec := xml.NewDecoder(resp.Body)    if err = dec.Decode(respStruct); err != nil {        fmt.Printf("error: %v", err)        return nil, nil    }    return response, respStruct}func main() {   resp, respStruct := UpdateEntity(response, "template.xml", LoginStruct{}, UserStruct{})   fmt.Println(respStruct.Username)}此行fmt.Println(respStruct.Username)抱怨 Username 未定义为 interface{} 没有字段或方法 Username。我将 UserStruct 作为其respStruct参数传递,例如具有 Username 字段。有没有办法可以使用interface{}返回变量并使用预定义的 Struct 字段?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 175 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信