我想使用struct DataResponse
作为JSON()
的参数来响应用户。通过初始化DataResponse
的实例,我得到了错误消息,给出了太多的参数,但给出了所有必要的参数。
type DataResponse struct {
Status int `json:"status"`
Data interface{} `json:"data"`
}
func GetUser(rw http.ResponseWriter, req *http.Request, ps httprouter.Params) {
user := models.User{}
// Fetching user from db
resp := DataResponse(200, user)
JSON(rw, resp) // rw is the ResponseWriter of net/http
}
编译器抛出以下错误消息:
too many arguments to conversion to DataResponse: DataResponse(200, user)
DataResponse
需要两个参数,Data
是一个接口,因此它应该接受models.User
作为数据类型。
答案 0 :(得分:17)
resp := DataResponse(200, user)
语法错误。尝试使用花括号进行结构初始化:
resp := DataResponse{200, user}
^ ^