0
這裏是我需要做的,並不能找到我需要爲了做到這一點的資源:golang解組結構函數,它不知道的類型,並依靠接口
我需要編寫一個通用函數將爲MOCK服務器設置處理程序。這個處理程序將接收一個JSON對象,並且必須取消它並將其與參考結構進行比較,並根據兩個對象之間的對應關係來相應地設置其狀態。 這裏有個訣竅:我們不知道函數內部是什麼類型的引用。
< =====我現在在哪裏====> 我寫了這個函數,不起作用。
func createHandlerToTestDelete(route string, ref interface{}, received interface{}){
Servmux.HandleFunc(route,
func(w http.ResponseWriter, r *http.Request) {
// recreate a structure from body content
body, _ := ioutil.ReadAll(r.Body)
json.Unmarshal(body, &received)
// comparison between ref and received
if reflect.DeepEqual(received, ref) {
w.WriteHeader(http.StatusOK)
} else {
w.WriteHeader(http.StatusInternalServerError)
}
},
)
}
這裏是我如何使用它:
ref := MyStruct{...NotEmpty...}
received := MyStruct{}
createHandlerToTestDelete("aRoute", ref, received)
結果是服務器時做解組不會在意原始類型接收可變的。
有人有想法嗎?
非常感謝,好像我應該去看看反射和json的內容更好看! – MrBouh