有没有办法使用作为接口参数传入的结构来操作解码的 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
提交
取消